// ------------------------------------------------------------------------- // ----- CbmLitTrackPropagator header file ----- // ----- Created 16/07/07 by A. Lebedev ----- // ------------------------------------------------------------------------- /** CbmLitTrackPropagator.h *@author A.Lebedev ** ** **/ #ifndef CBMLITTRACKPROPAGATOR_H #define CBMLITTRACKPROPAGATOR_H #include "base/CbmTrackPropagator.h" #include "base/CbmTrackExtrapolator.h" #include "CbmLitMaterial.h" #include "CbmField.h" #include "CbmTrackParam.h" #include class CbmLitTrackPropagator: public CbmTrackPropagator { public: // constructor //CbmLitTrackPropagator(); CbmLitTrackPropagator(CbmTrackExtrapolator *extrapolator); // distructor virtual ~CbmLitTrackPropagator(); // derived from CbmTool virtual void Initialize(); virtual void Finalize(); // Propagator virtual void Propagate( const CbmTrackParam *pParamIn, CbmTrackParam *pParamOut, Double_t zOut); virtual void Propagate( CbmTrackParam *pParam, Double_t zOut ); // accessors to change internal properties 28.11.07 // this is only a temporary solution!!! //void SetMass(Double_t mass) { fMass = mass; }; //void SetApplyEnergyLoss(Bool_t apply) { fApplyEnergyLoss = apply; }; //void SetEnergyLoss(Double_t energyLoss) { fEnergyLoss = energyLoss; }; //void SetFms(Double_t fms) { fFms = fms; }; // protected: void AddThinScatter(CbmTrackParam* pParam, Double_t RadLength); void AddThickScatter(CbmTrackParam* pParam, Double_t RadLength, Double_t Thickness); void AddEnergyLoss( CbmTrackParam* pParam, CbmLitMaterial* Material); void AddElectronEnergyLoss(CbmTrackParam* pParam, CbmLitMaterial* Material); private: CbmTrackExtrapolator *fExtrapolator; Bool_t fDownstream; Double_t fFms; Double_t fMass; Double_t fEnergyLoss; Bool_t fApplyEnergyLoss; std::vector fvAllMaterials; ClassDef(CbmLitTrackPropagator,1) }; #endif //CbmLitTrackPropagator