SND@LHC Software
Loading...
Searching...
No Matches
ShipFieldCreator.cxx
Go to the documentation of this file.
1#include "ShipFieldCreator.h"
2
3#include "ShipFieldPar.h"
4#include "ShipConstField.h"
5
6#include "FairRunAna.h"
7#include "FairRuntimeDb.h"
8#include "FairField.h"
9
10#include <iostream>
11using std::cout;
12using std::cerr;
13using std::endl;
14
15static ShipFieldCreator gShipFieldCreator;
16
18 :FairFieldFactory(),
19 fFieldPar(NULL)
20{
21 fCreator=this;
22}
23
27
29{
30 FairRunAna *Run = FairRunAna::Instance();
31 FairRuntimeDb *RunDB = Run->GetRuntimeDb();
32 fFieldPar = (ShipFieldPar*) RunDB->getContainer("ShipFieldPar");
33
34}
35
37{
38 FairField *fMagneticField=0;
39
40 if ( ! fFieldPar ) {
41 cerr << "-E- No field parameters available!"
42 << endl;
43 }else{
44 // Instantiate correct field type
45 Int_t fType = fFieldPar->GetType();
46 if ( fType == 0 ) fMagneticField = new ShipConstField(fFieldPar);
47 else cerr << "-W- FairRunAna::GetField: Unknown field type " << fType
48 << endl;
49 cout << "New field at " << fMagneticField << ", type " << fType << endl;
50 // Initialise field
51 if ( fMagneticField ) {
52 fMagneticField->Init();
53 fMagneticField->Print("");
54 }
55 }
56 return fMagneticField;
57}
58
59
virtual void SetParm()
ShipFieldPar * fFieldPar
virtual FairField * createFairField()
Int_t GetType() const
ClassImp(ecalContFact) ecalContFact