// ------------------------------------------------------------------------- // ----- CbmLitKalmanImp header file ----- // ----- Created 14/08/06 by A. Lebedev ----- // ------------------------------------------------------------------------- /** CbmLitKalmanImp.h *@author A.Lebedev ** ** **/ #include "CbmTask.h" #include "CbmRootManager.h" #include "CbmField.h" #include "CbmRunAna.h" #include "CbmTrackParam.h" #include "CbmLitMaterial.h" #include "CbmLitState.h" #include "CbmLitNode.h" #include "CbmLitExtrapolator.h" using std::vector; #ifndef CbmLitKalmanImpAAA #define CbmLitKalmanImpAAA class CbmLitKalmanImp: public TObject{ public: //MS factor Double_t fFms; // mass assumption Double_t fMass; //Pid assumption Int_t fPid; //Direction Bool_t fDownstream; //Thickness of the thick wall Double_t fThickWall; // Double_t fEnergyLoss; // Bool_t fElectron; void SetPid(Int_t Pid); //Vectro with materials vector fvAllMaterials; //Read TRD Materials void ReadTrdMaterials(TObjArray *Nodes); void ReadTrdMaterials(); //Read Sts Materials void ReadStsMaterials(TObjArray *Nodes); void ReadStsMaterials(); //Read Rich Materials void ReadRichMaterials(); //Read Materials void ReadMaterials(); CbmLitExtrapolator *fExtrapolator; void SetMethod(Int_t Method); public: //Kalman routines void KalmanPrediction(CbmLitState &State, Double_t z_out); void KalmanFilter(CbmLitNode &Node); void AddThinScatter(CbmLitState& State, Double_t RadLength, Double_t Q[]); void AddThickScatter(CbmLitState& State, Double_t RadLength, Double_t Thickness, Double_t Q[]); void AddEnergyLoss( CbmLitState& State, CbmLitMaterial& Material); void AddElectronEnergyLoss(CbmLitState& State, CbmLitMaterial& Material); /////////////////////// void SetParContainers(); InitStatus ReInit(); /////////////////////// //constructors CbmLitKalmanImp(); // destructors virtual ~CbmLitKalmanImp(); ClassDef(CbmLitKalmanImp,1) }; #endif //CbmLitKalmanImp