//============================================================================ // IOTrackModule // ------------- // Attaches COT hits to silicon-only tracks (IO = inside-out), and performs // a combined fit to the COT and silicon hits. Currently, requires the // silicon-only tracks to have a TrackingAlgorithm = KalSvxStandAloneAlg. // // Alternatively, the module can be directed to attach COT hits to all // tracks within a specified CdfTrackColl that do not already have COT // hits on them, irrespective of silicon hit content. A track with no // hits of any kind is acceptable. The final fit will include all hits // in the final track. // // C. Hays // R. Snider //============================================================================ #ifndef IOTrackModule_hh #define IOTrackModule_hh 1 #include "Framework/APPModule.hh" #include "Framework/AbsParmDouble.hh" #include "Framework/AbsParmString.hh" #include "TrackingKal/KalUtils.hh" #include "VertexObjects/Beamline.hh" #include "TrackingSI/TrackFitting/SiKalmanFitter.hh" //----------------------- class SiKalmanFitter; //----------------------- #include using std::map; class CdfTrack; class IOTrackModule : public AppModule { public: // Constructors IOTrackModule( const char* const theName = "IOTrackModule", const char* const theDescription = "Inside-out tracking" ); // Destructor virtual ~IOTrackModule( ); // Operations virtual AppResult beginJob( AbsEvent* aJob ); virtual AppResult beginRun( AbsEvent* aRun ); virtual AppResult event( AbsEvent* anEvent ); virtual AppResult endRun( AbsEvent* aRun ); virtual AppResult endJob( AbsEvent* aJob ); virtual AppResult abortJob( AbsEvent* aJob ); private: AbsParmBool _selectInputTrackColl; AbsParmString _inputTrackDescr; AbsParmString _processName; AbsParmBool _writeOut; AbsParmString _outputTrackDescr; AbsParmBool _insideOutFit; AbsParmBool _seedCurvature; AbsParmBool _writeDEDx; AbsParmDouble _setRoadWidthFactor; AbsParmGeneral _minAx, _minSt; AbsParmBool _debugOutput; AbsParmGeneral _IOmode; AbsParmGeneral _BCfit; KalUtils* _ku; SiKalmanFitter * _kalFitter; Beamline userBeam; }; #endif