00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00016 #ifndef BFLDMAP_H
00017 #define BFLDMAP_H
00018
00019 #include "TVector3.h"
00020 #include "TClonesArray.h"
00021
00022
00023 #include "BField/BfldGrid.h"
00024 #include "BField/BfldRefCnt.h"
00025
00026 #include <vector>
00027
00028 class BfldMap : public TObject, public BfldRefCnt {
00029
00030 public:
00031
00032 BfldMap();
00033 BfldMap(BfldGrid::Grid_t grid, Int_t variant);
00034 virtual ~BfldMap();
00035
00036 virtual TVector3 GetBField(Int_t generator);
00037
00038 virtual TVector3 GetRawField(Int_t generator);
00039
00040 BfldGrid::Grid_t GetGrid() const;
00041 Int_t GetVariant() const;
00042
00043 Float_t GetGeneratedCoilCurrent() const;
00044
00045 protected:
00046
00047 void ResizeVectors(UInt_t size);
00048 void AddGenerator(UInt_t generator, Double_t bx, Double_t by,
00049 Double_t bz=0.0);
00050
00051
00052 void AddGenerator(UInt_t generator, TVector3& bfld);
00053
00054 BfldGrid::Grid_t fGrid;
00055 Int_t fVariant;
00056 Bool_t fIs3d;
00057
00058 Float_t fGeneratedCoilCurrent;
00059 Bool_t fFilledOkay;
00060 std::string fDataSource;
00061
00062 UInt_t fNumGenerators;
00063 std::vector<Float_t> fBx;
00064 std::vector<Float_t> fBy;
00065 std::vector<Float_t> fBz;
00066 ClassDef(BfldMap,4)
00067
00068 private:
00069
00070 };
00071
00072 inline BfldGrid::Grid_t BfldMap::GetGrid() const { return fGrid; }
00073 inline Int_t BfldMap::GetVariant() const { return fVariant; }
00074 inline Float_t BfldMap::GetGeneratedCoilCurrent() const
00075 { return fGeneratedCoilCurrent; }
00076
00077 #endif // BFLDMAP_H
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089