#ifndef SiPatternRecModule_hh #define SiPatternRecModule_hh 1 #include "Framework/APPModule.hh" #include "Framework/AbsParmBool.hh" #include "Framework/AbsParmDouble.hh" #include "Framework/AbsParmGeneral.hh" #include "Framework/AbsParmString.hh" // S.B. Added #include "Framework/AbsParmList.hh" #include "TrackingKal/KalConverter.hh" #include "Alignment/SvxBeam.hh" #include "TrackingKal/KalBeam.hh" #include class SiliconTrackMonger; class BeamSpot; class SiPathFinder; class MaterialIntegrator; class CdfHalfLadderSet; class SiDetector; class SiExpected; class SiPatternRecModule : public AppModule { public: // Constructors SiPatternRecModule( const char* const theName="SiPatternRecModule", const char* const theDescription= "All silicon-related reconstruction" ); // Destructor virtual ~SiPatternRecModule( ); // 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 ); virtual AppModule* clone(const char* cloneName); private: // methods AppResult _doRegional( AbsEvent* anEvent ); // instance objects SiliconTrackMonger *_monger; BeamSpot *_beamSpot; MaterialIntegrator *_materialIntegrator; SiPathFinder *_siPathFinder; AbsParmBool _writeOut; AbsParmBool _passAllCandidates; AbsParmBool _zigzag; AbsParmBool _doOI; AbsParmBool _doOIZ; AbsParmBool _doKalSvxStandalone; AbsParmBool _doKalFWDStandalone; AbsParmBool _doKalOISvxStandalone; AbsParmBool _kalUseZ90; AbsParmBool _kalUseStereo; AbsParmBool _kalUseTimeoutKludge; AbsParmBool _kalUseSiliMap; AbsParmBool _KALOIonUnusedCOTTracksOnly; AbsParmBool _WEIOIonUnusedCOTTracksOnly; AbsParmDouble _kalCOTErrorScale; AbsParmDouble _kalOI3LoopChi2Cut1; AbsParmDouble _kalOI3LoopChi2Cut2; AbsParmDouble _kalOI3LoopChi2Cut3; AbsParmDouble _kalOI3LoopChi2Cut4; AbsParmDouble _kalOI3LoopChi2Cutz; AbsParmBool _kalOI3LoopCleanUpPhi; AbsParmBool _kalOI3LoopCleanUpZ; AbsParmDouble _kalOI3LoopPhiSigmaRoad1; AbsParmDouble _kalOI3LoopPhiSigmaRoad2; AbsParmDouble _kalOI3LoopPhiSigmaRoad3; AbsParmDouble _kalOI3LoopPhiminRoad; AbsParmDouble _kalOI3LoopZSigmaRoad; AbsParmDouble _kalOI3LoopSASSigmaRoad; AbsParmGeneral _kalOI3LoopMinPhiHits; AbsParmGeneral _kalOI3LoopDebugLevel; AbsParmGeneral _kalSVXMinPhiHits; AbsParmDouble _kalSVXMaxChi2pdof; AbsParmDouble _kalSVXPhiWindow; AbsParmDouble _kalSVXZWindow; AbsParmDouble _kalSVXPVz1; AbsParmDouble _kalSVXPVz2; AbsParmDouble _kalSVXSigmaPhiWindow; AbsParmDouble _kalSVXSigmaStereoWindow; AbsParmDouble _kalSVXSigmaZWindow; AbsParmBool _kalSVXCleanUpPhi; AbsParmBool _kalSVXCleanUpZ; AbsParmDouble _kalSVXDeltaPhiSection; AbsParmGeneral _kalSVXDebugLevel; AbsParmGeneral _kalFWDMinPhiHits; AbsParmDouble _kalFWDMaxChi2pdof; AbsParmDouble _kalFWDPhiWindow; AbsParmDouble _kalFWDZWindow; AbsParmDouble _kalFWDPVz1; AbsParmDouble _kalFWDPVz2; AbsParmDouble _kalFWDSigmaPhiWindow; AbsParmDouble _kalFWDSigmaStereoWindow; AbsParmDouble _kalFWDSigmaZWindow; AbsParmBool _kalFWDCleanUpPhi; AbsParmBool _kalFWDCleanUpZ; AbsParmDouble _kalFWDDeltaPhiSection; AbsParmGeneral _kalFWDDebugLevel; AbsParmBool _doPerfectSi; AbsParmBool _noKalStandalone; AbsParmDouble _minPt; AbsParmDouble _minSVXPt; AbsParmDouble _minFWDPt; AbsParmDouble _maxFWDPt; AbsParmDouble _x0; AbsParmDouble _y0; AbsParmGeneral _pathName; AbsParmBool _debugRegional; AbsParmBool _uniqueOutputColl; AbsParmGeneral _missingLayer; // S.B. Added AbsParmList _missingMultLayers; int _multLayers[8]; AbsParmBool _useSiExpected; AbsParmBool _donotSVXBeam; AbsParmBool _useallHits; AbsParmBool _useallHitsFWD; // TKN added AbsParmGeneral _method; AbsParmGeneral _inputTracks; AbsParmGeneral _inputHitSet; AbsParmGeneral _outputTracks; // Process name AbsParmString _processName; AbsParmGeneral _ZVerDescrip; AbsParmGeneral _cotSF; AbsParmBool _use90Z; // // Configuration of timeout and out of memory // cuts. // // This was introduced to minimize production farm crashes. It is // dangerous, however, since it makes program behaviour implicitely // dependent on the hardware in a new fashion. (The old fashioned // dependence epresses itself in crashes due to resource exhaustion // on rare offending events.) // // Developers: default is 'off' -- keep it that way! // For users: only enable this when you know what you are doing. // AbsParmBool _kalLimitCpuTime; // [s] AbsParmGeneral _kalMaxCpuTime; AbsParmBool _kalLimitRealTime; // [s] AbsParmGeneral _kalMaxRealTime; AbsParmBool _kalLimitMemory; // [MB] AbsParmGeneral _kalMaxMemory; bool _siExpectedAvailableInRun; SiExpected* _siExpected; SvxBeam* _svxBeam; }; #endif