#ifndef __EDFIELD__
#define __EDFIELD__
#include "TNamed.h"
#include "TString.h"
#include "TEveTrackPropagator.h"
class HEDField ;
R__EXTERN HEDField *gEDField;
class HEDField : public TNamed , public TEveMagField {
private:
Int_t nfz,nfr,nfp;
Double_t zflmin,zflmax,zfldel;
Double_t rflmin,rflmax,rfldel;
Double_t pflmin,pflmax,pfldel;
Double_t fpol;
Double_t* p_tzfl;
Double_t* p_trfl;
Double_t* p_tpfl;
Double_t step1z,step1r,step1p;
Double_t dconv;
Int_t nfz_nfr;
Double_t one_sixtyth;
public:
HEDField(const Char_t *name="HADES_FIELD_MAP",const Char_t *title="HADES_FIELD_MAP",Double_t fPolarity = 1);
virtual ~HEDField();
void SetPolarity(Double_t fPolarity) { fpol = -fPolarity; }
void Clear();
void CalcField(Double_t* xv,Double_t *btos) const;
void ReadAscii (TString infile);
void WriteAscii(TString outfile);
virtual TEveVector GetField(Float_t x, Float_t y, Float_t z) const;
virtual TEveVector GetField(const TEveVector& v) const;
virtual Float_t GetMaxFieldMag() const {return 4.;}
ClassDef(HEDField,1)
};
#endif /*!HEDField_H*/