13 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
19 TString simFileName =
"Sim_Dpm_500.root";
20 TString parFileName =
"Sim_Dpm_500_params.root";
21 TString digiFileName =
"Sim_Dpm_500_digi.root";
22 TString recoFileName =
"Sim_Dpm_500_reco.root";
23 TString outFileName =
"Sim_Dpm_500_streamdisplay.root";
27 TFile filerecopixel(recoFileName.Data());
30 TTree *recotree = (TTree*)
filereco.Get(
"pndsim");
32 FairRunAna *
fRun =
new FairRunAna();
33 fRun->SetInputFile(simFileName.Data());
34 fRun->AddFriend(recoFileName.Data());
35 fRun->AddFriend(digiFileName.Data());
36 fRun->SetOutputFile(outFileName.Data());
38 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
40 PndOnlineGeometryManager *online_geometry =
new PndOnlineGeometryManager(rtdb, parFileName.Data());
42 PndOnlineManager *online =
new PndOnlineManager();
43 online->AddGeometryManager(online_geometry);
45 online->LoadStream(PndOnline::kMVDPixel,
"MVDHitsPixel",stthitlifetime);
46 online->LoadStream(PndOnline::kMVDStrip,
"MVDHitsStrip",stthitlifetime);
48 TClonesArray* tubearray = online_geometry->GetDetectorGeometry(
PndOnline::kSTT);
51 PndOnlineSttTripletFinder *triplet_finder =
new PndOnlineSttTripletFinder(online, tubearray);
52 online->AddTask((FairTask*)triplet_finder);
55 TCanvas*
c1 =
new TCanvas(
"c1");
56 c1->Range(-42,-42,42,42);
57 c1->SetCanvasSize(1200, 1200);
58 TText* mytext =
new TText();
65 int final_time = 2000;
67 online->SetHESRRevolutionDuration(delta_t);
71 TObjArray* online_fairhits_stt = 0;
72 TObjArray* online_tracks = 0;
73 TObjArray* online_tracks2 = 0;
74 TObjArray* online_fairhits_mvdpixel = 0;
75 TObjArray* online_fairhits_mvdstrip = 0;
77 for (current_time = 0; current_time < final_time; current_time += delta_t) {
79 online->ClearTracks();
80 online->LoadHits( delta_t );
87 for (drawtime = current_time; drawtime < current_time + delta_t; drawtime += drawdeltat) {
97 online_fairhits_stt = online->GetFairHitObjectTimedList(
PndOnline::kSTT, drawtime-stthitlifetime-20, stthitlifetime+20);
98 online_tracks = online->GetTrackObjectTimedList(drawtime-stthitlifetime-stthitlifetime, stthitlifetime);
99 online_fairhits_mvdpixel = online->GetFairHitObjectTimedList(PndOnline::kMVDPixel, drawtime-stthitlifetime-20, 40);
100 online_fairhits_mvdstrip = online->GetFairHitObjectTimedList(PndOnline::kMVDStrip, drawtime-stthitlifetime-20, 40);
103 DrawIsochrones(drawtime-stthitlifetime, online_fairhits_stt, tubearray);
105 DrawOnlineTrackVertices(drawtime-stthitlifetime, online_tracks);
107 DrawOnlineTrackHackHitCheck(drawtime-stthitlifetime, online_tracks, online_fairhits_stt, tubearray);
109 DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdpixel, 20);
110 DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdstrip, 20);
113 mytext->DrawText(-42, -42, TString::Format(
"%d ns",drawtime));
115 c1->Print(
"hitdisplay.gif+20");
117 delete online_fairhits_stt;
118 delete online_tracks;
119 delete online_fairhits_mvdpixel;
120 delete online_fairhits_mvdstrip;
125 c1->Print(
"hitdisplay.gif++");
131 cout << endl << endl;
132 cout <<
"Macro finished succesfully." << endl;
133 cout <<
"Real time " << rtime <<
" s, CPU time " << ctime <<
" s" << endl;
TFile filereco("MvdStt_Test_reco.root")
void DrawIsochrones(Int_t currenttime, TObjArray *stthits, TObjArray *stttubes, Int_t *timeviolationcount)
TFile filedigi("testdigi.root")