// ---------------------------------------------------------------------------- // $Id: LCDSmearTrack.h,v 1.3 2001/06/23 16:15:15 toshi Exp $ // ---------------------------------------------------------------------------- // // $Log: LCDSmearTrack.h,v $ // Revision 1.3 2001/06/23 16:15:15 toshi // In method arg. , Char_t* -> const Char_t* // // Revision 1.2 2001/06/19 16:56:50 toshi // Just add $ID: $ in the top of this file. // // #ifndef LCDSMEARTRACK_H #define LCDSMEARTRACK_H #include "TRandom.h" #include "TMatrixD.h" #include "TVector3.h" #include "LCDTrack.h" #include "LCDMcPart.h" #include "LCDLookUp2d.h" #include "LCDGetParameters.h" #include "LCDGetTrackLookups.h" class LCDSmearTrack : public TObject { public: LCDSmearTrack();//constructor; LCDSmearTrack(LCDGetParameters* gp, const Char_t* smearFileName); // constructor ~LCDSmearTrack(); void SetUp(LCDGetParameters* gp, const Char_t* smearFileName); void SmearTrack(LCDMcPart* p, Int_t index, Int_t index0, LCDGetParameters* gp, LCDTrack* tk); LCDGetParameters* GetParameters() { return m_parameters; } // Get parameters class LCDLookUp2d* GetSmearTable(Int_t i) { return smear_parNum[i]; } // Get barrel lookup table private: TRandom m_random; // random numbers for smearing LCDGetParameters* m_parameters; // parameters class LCDLookUp2d* smear_parNum[15]; // lookup tables for smearing LCDGetTrackLookups* m_TkLook; void Init(); void FindEigen(TMatrixD& Source, TMatrixD& RotationMatrix, TMatrixD& EigenValues); void CalcPOCA(Double_t qMC, Double_t bfld_z, TVector3 p_orig, TVector3 x_orig, TVector3& p_poca, TVector3& x_poca); void CalcSmearParameters(Double_t* m_eparm, Double_t* d_parm, Double_t bfld_z, Double_t pTot, Double_t abscth, LCDGetParameters* gp, LCDLookUp2d** par, Double_t* chi2); void CalcTrackParameters(Double_t qMC, Double_t bfld_z, TVector3 capMC, TVector3 caxMC, Double_t* tkpar); public: ClassDef(LCDSmearTrack,1) // Smears tracks using lookup tables for resolution }; #endif