FairRoot/PandaRoot
Functions
runOnlineDisplayRelease.C File Reference
#include "drawhelpers.hxx"

Go to the source code of this file.

Functions

int runOnlineDisplayRelease ()
 

Function Documentation

int runOnlineDisplayRelease ( )

Definition at line 3 of file runOnlineDisplayRelease.C.

References c1, ctime, Double_t, DrawIsochrones(), filedigi(), filereco(), fRun, iVerbose, kSTT, rootlogon(), rtdb, rtime, timer, treedigi, and TString.

3  {
4  gROOT->Reset();
5  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
6  Int_t iVerbose = 0;
7 
8  //enum DetectorId {
9  // kDCH,kDRC,kDSK,kEMC,kGEM,kLUMI,kMDT,kMVD,kRPC,kSTT,kTPC,kTOF,kFTS,kHYPG,kHYP};
10 
11  TStopwatch timer;
12  timer.Start();
13  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
14  rootlogon();
15 
16  // Reco Parameters
17  Double_t stthitlifetime = 245;
18 
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";
24 
25  TFile filedigi(digiFileName.Data());
26  TFile filereco(recoFileName.Data());
27  TFile filerecopixel(recoFileName.Data());
28 
29  TTree *treedigi = (TTree*) filedigi.Get("pndsim");
30  TTree *recotree = (TTree*) filereco.Get("pndsim");
31 
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());
37  fRun->Init();
38  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
39 
40  PndOnlineGeometryManager *online_geometry = new PndOnlineGeometryManager(rtdb, parFileName.Data());
41 
42  PndOnlineManager *online = new PndOnlineManager();
43  online->AddGeometryManager(online_geometry);
44  online->LoadStream(PndOnline::kSTT,"STTSortedHits",stthitlifetime);
45  online->LoadStream(PndOnline::kMVDPixel,"MVDHitsPixel",stthitlifetime);
46  online->LoadStream(PndOnline::kMVDStrip,"MVDHitsStrip",stthitlifetime);
47 
48  TClonesArray* tubearray = online_geometry->GetDetectorGeometry(PndOnline::kSTT);
49 
50  // load task
51  PndOnlineSttTripletFinder *triplet_finder = new PndOnlineSttTripletFinder(online, tubearray);
52  online->AddTask((FairTask*)triplet_finder);
53 
54  // initialize display
55  TCanvas* c1 = new TCanvas("c1");
56  c1->Range(-42,-42,42,42);
57  c1->SetCanvasSize(1200, 1200);
58  TText* mytext = new TText();
59 
60  // event loop!
61  int current_time = 0;
62  int drawtime = 0;
63  int delta_t = 605;
64  int drawdeltat = 5;
65  int final_time = 2000;
66 
67  online->SetHESRRevolutionDuration(delta_t);
68 
69  online->Init();
70 
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;
76 
77  for (current_time = 0; current_time < final_time; current_time += delta_t) {
78  //online->LoadHits( PndOnlineManager::kHESRRevolution );
79  online->ClearTracks();
80  online->LoadHits( delta_t );
81  //online->LoadHits( current_time );
82  online->Process();
83  //online->Clear();
84 
85  //Draw the results
86 
87  for (drawtime = current_time; drawtime < current_time + delta_t; drawtime += drawdeltat) {
88  c1->Clear();
89  c1->cd();
90  DrawDetector();
91  //cout << " Drawing stuff " << endl;
92 
93  //online_fairhits_stt = online->GetFairHitObjectList(kSTT);
94  //online_tracks = online->GetTrackObjectList();
95  //online_fairhits_mvd = online->GetFairHitObjectList(kMVD);
96 
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);
101 
102  // isochrones
103  DrawIsochrones(drawtime-stthitlifetime, online_fairhits_stt, tubearray);
104  // triplet location
105  DrawOnlineTrackVertices(drawtime-stthitlifetime, online_tracks);
106  // tracks through triplets
107  DrawOnlineTrackHackHitCheck(drawtime-stthitlifetime, online_tracks, online_fairhits_stt, tubearray);
108  // mvd hits
109  DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdpixel, 20);
110  DrawFairHits(drawtime-stthitlifetime, online_fairhits_mvdstrip, 20);
111 
112  c1->cd();
113  mytext->DrawText(-42, -42, TString::Format("%d ns",drawtime));
114  c1->Update();
115  c1->Print("hitdisplay.gif+20");
116 
117  delete online_fairhits_stt;
118  delete online_tracks;
119  delete online_fairhits_mvdpixel;
120  delete online_fairhits_mvdstrip;
121  }
122 
123  }
124 
125  c1->Print("hitdisplay.gif++");
126 
127  // ----- Finish -------------------------------------------------------
128  timer.Stop();
129  Double_t rtime = timer.RealTime();
130  Double_t ctime = timer.CpuTime();
131  cout << endl << endl;
132  cout << "Macro finished succesfully." << endl;
133  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
134  cout << endl;
135  // ------------------------------------------------------------------------
136  return 0;
137 }
TFile filereco("MvdStt_Test_reco.root")
FairRunAna * fRun
Definition: hit_dirc.C:58
void DrawIsochrones(Int_t currenttime, TObjArray *stthits, TObjArray *stttubes, Int_t *timeviolationcount)
Double_t
TTree * treedigi
TStopwatch timer
Definition: hit_dirc.C:51
TFile filedigi("testdigi.root")
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
c1
Definition: plot_dirc.C:35
Double_t ctime
Definition: hit_dirc.C:114
Int_t iVerbose
Double_t rtime
Definition: hit_dirc.C:113