4 #include "TClonesArray.h"
5 #include "FairRootManager.h"
6 #include "FairGeaneTr.h"
7 #include "TGeant3TGeo.h"
12 #include "TDatabasePDG.h"
14 #include "FairTrackParH.h"
35 FairRootManager* ioman = FairRootManager::Instance();
37 cout <<
"-E- FairGeaneTr::Init: "
38 <<
"RootManager not instantised!" << endl;
47 ioman->Register(
"GeaneTrackIni",
"Geane",
fTrackParIni, kTRUE);
54 fPointArray1 = (TClonesArray*) ioman->GetObject(
"Plane1Point");
56 fPointArray2 = (TClonesArray*)ioman->GetObject(
"Plane2Point");
60 fPro =
new FairGeanePro();
62 fPro->PropagateToVolume(
"mL3",0,1);
81 for (Int_t
i=0;
i<NoOfEntries;
i++) {
96 TVector3 StartPosErr = TVector3(0,0,0);
99 TVector3 StartMomErr = TVector3(0,0,0);
102 TVector3 EndPosErr=TVector3(0,0,0);
104 TVector3 EndMomErr=TVector3(0,0,0);
109 TDatabasePDG *fdbPDG= TDatabasePDG::Instance();
110 TParticlePDG *
fParticle= fdbPDG->GetParticle(PDGCode);
111 Double_t fCharge= fParticle->Charge();
114 Int_t size1 = clref1.GetEntriesFast();
115 FairTrackParH *fStart=
new (clref1[size1]) FairTrackParH(StartPos, StartMom, StartPosErr, StartMomErr, fCharge);
119 Int_t size = clref.GetEntriesFast();
120 FairTrackParH *fRes=
new(clref[size]) FairTrackParH();
124 Int_t size2 = clref2.GetEntriesFast();
125 FairTrackParH *fFinal=
new(clref2[size2]) FairTrackParH(EndPos, EndMom, EndPosErr, EndMomErr, fCharge);
128 Bool_t rc =
fPro->Propagate(fStart, fRes,PDGCode);
130 Double_t fLm,
fPhi,cLm,sLm,cphi,sphi,fX_sc,fY_sc,fZ_sc,
fX,
fY,
fZ;
132 fLm = fRes->GetLambda();
133 fPhi= fRes->GetPhi();
142 fX_sc = fX*cphi*cLm+ fY*cLm*sphi+fZ*sLm;
143 fY_sc = fY*cphi-fX*sphi;
144 fZ_sc = fZ*cLm-fY*sLm*sphi-fX*sLm*cphi;
146 fFinal->SetX_sc(fX_sc);
147 fFinal->SetY_sc(fY_sc);
148 fFinal->SetZ_sc(fZ_sc);
TClonesArray * fPointArray1
TClonesArray * fPointArray2
TClonesArray * fTrackParIni
TClonesArray * fTrackParFinal
virtual void Exec(Option_t *opt)
TClonesArray * fTrackParGeane
virtual InitStatus Init()