#ifndef TStrawTrkReconEventFunction_hxx_seen #define TStrawTrkReconEventFunction_hxx_seen #include "IReconEventFunction.hxx" #include "IDataHit.hxx" #include "IStrawTrkDigit.hxx" #include "IStrawTrkmcDigit.hxx" #include "IStrawTrkTracking.hxx" #include "IStrawTrkTracking.hxx" namespace COMET { class IStrawTrkReconEventFunction; } class COMET::IStrawTrkReconEventFunction : public IReconEventFunction { public: IStrawTrkReconEventFunction(); virtual ~IStrawTrkReconEventFunction(); void Initialize(); void BeginOfEvent(); void EndOfEvent(); void Finalize(const COMET::ICOMETOutput*); COMET::IHandle PrepareHits(COMET::ICOMETEvent&); COMET::IHandle ProcessAlgorithms(const COMET::IAlgorithmResult&, COMET::ICOMETEvent&); private: Double_t fFactorForDriftDistance; Double_t fADCThresholdForHit; COMET::IStrawTrkTracking* fStrawTrkTracking; /// Translate IStrawTrkDigit container into IHitSelection for PreparHits() COMET::IHitSelection* MakeHitSelection(COMET::IHandle& digits); /// Translate IStrawTrkDigit container into IHitSelection for PreparHits() void CalculateDriftDistance(COMET::IHitSelection* hits); /// Translate an IStrawTrkDigit into IDataHit for PrepareHits(). COMET::IWritableDataHit* MakeDataHit(COMET::IStrawTrkmcDigit* digit); }; #endif