00001 #ifndef BFLHANDLER_H 00002 #define BFLHANDLER_H 00003 00004 #include "TVector3.h" 00005 #include "BField/BFLInterpolation.h" 00006 00007 const Int_t kNear = 0; 00008 const Int_t kFar = 1; 00009 const Int_t kCN = 0; 00010 const Int_t kNN = 1; 00011 const Int_t kBL = 2; 00012 00013 class BFLInterpolation; 00014 class BFLWingedEdge; 00015 class BFLCache; 00016 00017 class BFLHandler : public TObject 00018 { 00019 public: 00020 BFLHandler(Int_t detector); 00021 BFLHandler(Char_t VoronoiFile[], Char_t MeshFile[], 00022 Char_t BFieldFile[]); 00023 ~BFLHandler(); 00024 00025 TVector3 GetBField(const TVector3& GlobalPosVector, 00026 const Bool_t updateSeedPolygon = kFALSE); 00027 00028 virtual BFLCache * GetCache(void) { return fInt->GetCache(); } 00029 virtual void SetCache(BFLCache * cache) { fInt->SetCache(cache); } 00030 virtual void SetVoronoi(BFLWingedEdge * vor) { fVor = vor; } 00031 virtual void SetBField(TObjArray * bfield) { fBField = bfield; } 00032 virtual void SetInterpolant(BfldInterpMethod::InterpMethod_t interp) { 00033 fInt->SetInterpolant(interp); 00034 } 00035 virtual void SetLastPolygAsSeed(void) { 00036 fInt->SetSearchSeed(fInt->GetLastPolygon()); 00037 } 00038 private: 00039 Int_t LoadBField(Char_t GeomFile[]); 00040 BFLInterpolation * fInt; 00041 BFLWingedEdge * fVor; 00042 TObjArray * fBField; 00043 00044 ClassDef(BFLHandler, 0) // The BField package control class 00045 }; 00046 00047 #endif
1.3.9.1