1 #include "drawhelpers.hxx"
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 allDigiFile +=
"/macro/params/";
32 TFile filerecopixel(recoFileName.Data());
35 TTree *recotree = (TTree*)
filereco.Get(
"pndsim");
37 FairRunAna *
fRun =
new FairRunAna();
38 fRun->SetInputFile(simFileName.Data());
39 fRun->AddFriend(digiFileName.Data());
40 fRun->AddFriend(recoFileName.Data());
41 fRun->SetOutputFile(outFileName.Data());
43 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
44 FairParRootFileIo*
parInput1 =
new FairParRootFileIo();
45 parInput1->open(parFileName.Data());
46 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
47 parIo1->open(allDigiFile.Data(),
"in");
48 rtdb->setFirstInput(parInput1);
49 rtdb->setSecondInput(parIo1);
54 PndOnlineGeometryManager *online_geometry =
new PndOnlineGeometryManager(rtdb, parFileName.Data());
56 PndOnlineManager *online =
new PndOnlineManager();
57 online->AddGeometryManager(online_geometry);
59 online->LoadStream(PndOnline::kMVDPixel,
"MVDHitsPixel",stthitlifetime);
60 online->LoadStream(PndOnline::kMVDStrip,
"MVDHitsStrip",stthitlifetime);
62 TClonesArray* tubearray = online_geometry->GetDetectorGeometry(
PndOnline::kSTT);
65 PndOnlineSttTripletFinder *triplet_finder =
new PndOnlineSttTripletFinder(online, tubearray);
66 online->AddTask((FairTask*)triplet_finder);
69 TCanvas*
c1 =
new TCanvas(
"c1");
70 c1->Range(-42,-42,42,42);
71 c1->SetCanvasSize(1200, 1200);
72 TText* mytext =
new TText();
81 online->SetHESRRevolutionDuration(delta_t);
85 TObjArray* online_fairhits_stt = 0;
86 TObjArray* online_tracks = 0;
87 TObjArray* online_tracks2 = 0;
88 TObjArray* online_fairhits_mvdpixel = 0;
89 TObjArray* online_fairhits_mvdstrip = 0;
91 for (current_time = 0; current_time < final_time; current_time += delta_t) {
93 online->ClearTracks();
94 online->LoadHits( delta_t );
101 for (drawtime = current_time; drawtime < (current_time + delta_t) && (drawtime < final_time); drawtime += drawdeltat) {
111 online_fairhits_stt = online->GetFairHitObjectTimedList(
PndOnline::kSTT, drawtime-stthitlifetime-20, stthitlifetime+20);
112 online_tracks = online->GetTrackObjectTimedList(drawtime-stthitlifetime-stthitlifetime, stthitlifetime);
113 online_fairhits_mvdpixel = online->GetFairHitObjectTimedList(PndOnline::kMVDPixel, drawtime-stthitlifetime-20, 40);
114 online_fairhits_mvdstrip = online->GetFairHitObjectTimedList(PndOnline::kMVDStrip, drawtime-stthitlifetime-20, 40);
117 DrawIsochrones(drawtime-stthitlifetime, online_fairhits_stt, tubearray);
119 DrawOnlineTrackVertices(drawtime-stthitlifetime, online_tracks);
121 DrawOnlineTrackHackHitCheck(drawtime-stthitlifetime, online_tracks, online_fairhits_stt, tubearray);
123 DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdpixel, 20);
124 DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdstrip, 20);
127 mytext->DrawText(-42, -42, TString::Format(
"%d ns",drawtime));
129 c1->Print(
"hitdisplay.gif+20");
131 delete online_fairhits_stt;
132 delete online_tracks;
133 delete online_fairhits_mvdpixel;
134 delete online_fairhits_mvdstrip;
139 c1->Print(
"hitdisplay.gif++");
145 cout << endl << endl;
146 cout <<
"Macro finished succesfully." << endl;
147 cout <<
"Real time " << rtime <<
" s, CPU time " << ctime <<
" s" << endl;
TFile filereco("MvdStt_Test_reco.root")
int runOnlineDisplayProduction()
void DrawIsochrones(Int_t currenttime, TObjArray *stthits, TObjArray *stttubes, Int_t *timeviolationcount)
TFile filedigi("testdigi.root")
FairParRootFileIo * parInput1
FairParAsciiFileIo * parIo1