75 TString work = getenv(
"VMCWORKDIR");
76 TString work_config = work +
"/gconfig/";
77 TString LibMacro = work_config +
"g3libs.C";
78 TString ConfigMacro = work_config +
"g3Config.C";
79 TString cuts = work_config +
"SetCuts.C";
82 gROOT->LoadMacro(LibMacro.Data());
83 gROOT->ProcessLine(
"g3libs()");
88 TGeant3* geant3 =
new TGeant3TGeo(
"C++ Interface to Geant3");
99 geant3->SetSWIT(4, 100);
100 geant3->SetDEBU(0, 0, 1);
106 geant3->SetERAN(5.e-7);
109 gROOT->LoadMacro(cuts);
110 gROOT->ProcessLine(
"SetCuts()");
124 cout<<
"BmnTrackDrawP::Exec"<< endl;
129 cout<<
"Tracks: "<<
fTrackList->GetEntriesFast()<<endl;
133 cout<<
"BmnTrackDrawP::Exec "<<
i<<endl;
136 FairTrackParam* pParamFirst = (FairTrackParam*) current_track->
GetParamFirst();
139 bool isPrimary = ( (TMath::Abs(pParamFirst->GetX())<10) && (TMath::Abs(pParamFirst->GetY())<10) && (TMath::Abs(pParamFirst->GetZ())<10) );
146 int particlePDG = 2212;
150 pParamFirst->SetQp(1);
151 pParamFirst->Momentum(mom);
152 Double_t px = mom.X(), py = mom.Y(), pz = mom.Z();
157 TParticle* P =
new TParticle(particlePDG,
i, -1, -1, -1, -1, px, py, pz, 0, pParamFirst->GetX(), pParamFirst->GetY(), pParamFirst->GetZ(), 0);
162 TEveTrack* track =
new TEveTrack(P, particlePDG,
fTrPr);
167 x1[0] = pParamFirst->GetX();
168 x1[1] = pParamFirst->GetY();
169 x1[2] = pParamFirst->GetZ();
181 cout<<
"Propagate track from ("<<pParamFirst->GetX()<<
","<<pParamFirst->GetY()<<
","<<pParamFirst->GetZ()<<
") with momentum: ("
182 <<px<<
","<<py<<
","<<pz<<
")"<<endl;
184 Bool_t isSuccess =
fPro->Propagate(
x1,
p1,
x2,
p2, particlePDG);
186 cout<<
"isSuccess: "<<isSuccess<<
". Track end point: ("<<
x2[0]<<
","<<
x2[1]<<
","<<
x2[2]<<
") with momentum: ("<<
p2[0]<<
","<<
p2[1]<<
","<<
p2[2]<<
")"<<endl;
195 TGeoTrack* geo_track =
fTrajFilter->GetCurrentTrk();
196 Int_t Np = geo_track->GetNpoints();
198 cout<<
"Points: "<<Np<<endl;
199 for (Int_t n = 0; n < Np; n++)
201 const Double_t* point = geo_track->GetPoint(n);
203 track->SetPoint(n, point[0], point[1], point[2]);
205 TEvePathMark* path =
new TEvePathMark();
206 TEveVector pos = TEveVector(point[0], point[1],point[2]);
209 path->fTime = point[3];
212 TEveVector Mom = TEveVector(px, py, pz);
217 cout<<
"Path marker added "<<path<<endl;
220 track->AddPathMark(*path);
223 cout<<
"Path marker added "<<path<<endl;
230 cout<<
"track added "<<track->GetName()<<endl;
236 gEve->Redraw3D(kFALSE);