1 #include "basefunctions.hxx"
9 kDCH,
kDRC,
kDSK,
kEMC,
kGEM,
kLUMI,
kMDT,
kMVD,
kRPC,
kSTT,
kTPC,
kTOF,
kFTS,
kHYPG,
kHYP};
14 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
20 TString simFileName =
"Sim_Dpm_500.root";
21 TString parFileName =
"Sim_Dpm_500_params.root";
22 TString digiFileName =
"Sim_Dpm_500_digi.root";
23 TString recoFileName =
"Sim_Dpm_500_reco.root";
24 TString outFileName =
"Sim_Dpm_500_streamdisplay.root";
28 TFile filerecopixel(recoFileName.Data());
34 TTree *recotree = (TTree*)
filereco.Get(
"pndsim");
41 FairRunAna *
fRun =
new FairRunAna();
42 fRun->SetInputFile(simFileName.Data());
43 fRun->AddFriend(recoFileName.Data());
44 fRun->AddFriend(digiFileName.Data());
45 fRun->SetOutputFile(outFileName.Data());
48 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
55 PndOnlineGeometryManager *online_geometry =
new PndOnlineGeometryManager(rtdb, parFileName.Data());
72 PndOnlineHitProducer *online_hit_producer =
new PndOnlineHitProducer();
73 online_hit_producer->LoadStream(
kSTT,
"STTSortedHits");
74 online_hit_producer->LoadStream(
kMVD,
"MVDHitsStrip");
75 online_hit_producer->LoadStream(
kMVD,
"MVDHitsPixel");
78 PndOnlineManager *online =
new PndOnlineManager();
79 online->AddHitProducer(online_hit_producer);
80 online->AddGeometryManager(online_geometry);
81 online->SetActiveDetector(
kSTT,stthitlifetime);
82 online->SetActiveDetector(
kMVD,stthitlifetime);
84 TClonesArray* tubearray = online_geometry->GetDetectorGeometry(
kSTT);
87 PndOnlineSttTripletFinder *triplet_finder =
new PndOnlineSttTripletFinder(online, tubearray);
89 online->AddTask((FairTask*)triplet_finder);
92 TCanvas* rzcanvas =
new TCanvas(
"rzcanvas");
93 rzcanvas->Range(-54,-42,114,42);
94 rzcanvas->SetCanvasSize(1200, 600);
96 TCanvas*
c1 =
new TCanvas(
"c1");
97 c1->Range(-42,-42,42,42);
98 c1->SetCanvasSize(1200, 1200);
99 TText* mytext =
new TText();
103 int current_time = 0;
106 int final_time = 2205;
109 TObjArray* online_fairhits_stt = 0;
110 TObjArray* online_tracks = 0;
111 TObjArray* online_fairhits_mvd = 0;
113 while( current_time < final_time ) {
115 online->LoadHits( delta_t );
119 current_time += delta_t;
126 cout <<
" Drawing stuff " << endl;
128 online_fairhits_stt = online->GetFairHitObjectList(
kSTT);
129 online_tracks = online->GetTrackObjectList();
130 online_fairhits_mvd = online->GetFairHitObjectList(
kMVD);
132 DrawIsochrones(current_time-stthitlifetime, online_fairhits_stt, tubearray);
134 DrawOnlineTrackVertices(current_time-stthitlifetime, online_tracks);
137 DrawOnlineTrackHackHitCheck(current_time-stthitlifetime, online_tracks, online_fairhits_stt, tubearray);
139 DrawFairHits(current_time-stthitlifetime, online_fairhits_mvd, 20);
150 DrawFairHitsRZ(current_time-stthitlifetime, online_fairhits_mvd, 20);
151 DrawOnlineTrackVerticesRZ(current_time-stthitlifetime, online_tracks);
152 mytext->DrawText(-54, -42, TString::Format(
"%d ns",current_time));
154 rzcanvas->Print(
"hitdisplayrz.gif+20");
157 mytext->DrawText(-42, -42, TString::Format(
"%d ns",current_time));
160 c1->Print(
"hitdisplay.gif+20");
162 delete online_fairhits_stt;
163 delete online_tracks;
164 delete online_fairhits_mvd;
180 c1->Print(
"hitdisplay.gif++");
181 rzcanvas->Print(
"hitdisplayrz.gif++");
187 cout << endl << endl;
188 cout <<
"Macro finished succesfully." << endl;
189 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")