FairRoot/PandaRoot
Functions
runOnlineDisplayGeomTest.C File Reference
#include "basefunctions.hxx"

Go to the source code of this file.

Functions

int runOnlineDisplayGeomTest ()
 

Function Documentation

int runOnlineDisplayGeomTest ( )

PndGeoSttPar* fSttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");

/// works around the "geometry not supported by map" error /// HACK

PndSttTrackFinderReal* sttTrackFinder = new PndSttTrackFinderReal(0);
PndSttFindTracks* sttFindTracks = new PndSttFindTracks("Track Finder", "FairTask", sttTrackFinder, iVerbose);
sttFindTracks->AddHitCollectionName("STTHit", "STTPoint");
sttFindTracks->SetPersistence(kFALSE);
fRun->AddTask(sttFindTracks);

fRun->Init();

/////////////////////////////////////////////////////////

Definition at line 3 of file runOnlineDisplayGeomTest.C.

References c1, ctime, Double_t, DrawIsochrones(), filedigi(), filereco(), fRun, i, iVerbose, kDCH, kDRC, kDSK, kEMC, kFTS, kGEM, kHYP, kHYPG, kLUMI, kMDT, kMVD, kRPC, kSTT, kTOF, kTPC, 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 {
10 
11 
12  TStopwatch timer;
13  timer.Start();
14  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
15  rootlogon();
16 
17  // Reco Parameters
18  Double_t stthitlifetime = 200;
19 
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";
25 
26  TFile filedigi(digiFileName.Data());
27  TFile filereco(recoFileName.Data());
28  TFile filerecopixel(recoFileName.Data());
29 
30  TTree *treedigi = (TTree*) filedigi.Get("pndsim");
31  //TClonesArray *sttsortedhits = new TClonesArray("PndSttHit");
32  //treedigi->SetBranchAddress("STTSortedHits",&sttsortedhits);
33 
34  TTree *recotree = (TTree*) filereco.Get("pndsim");
35  //TClonesArray *mvdstripreco = new TClonesArray("PndSdsHit");
36  //recotree->SetBranchAddress("MVDHitsStrip",&mvdstripreco);
37  //TClonesArray *mvdpixelreco = new TClonesArray("PndSdsHit");
38  //recotree->SetBranchAddress("MVDHitsPixel",&mvdpixelreco);
39 
40 
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());
46  fRun->Init();
47 
48  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
49 
50  // load geometry parameters
52  //PndSttMapCreator* mapper = new PndSttMapCreator(fSttParameters);
53  //TClonesArray* tubearray = mapper->FillTubeArray();
54 
55  PndOnlineGeometryManager *online_geometry = new PndOnlineGeometryManager(rtdb, parFileName.Data());
56  //online_geometry->LoadRTDB();
57 
61 
70 
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");
76 
77 
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);
83 
84  TClonesArray* tubearray = online_geometry->GetDetectorGeometry(kSTT);
85 
86  cerr << " size of the STT tube array = " << tubearray->GetEntriesFast() << endl;
87 
88  // load task
89  PndOnlineSttTripletFinder *triplet_finder = new PndOnlineSttTripletFinder(online, tubearray);
90  //triplet_finder->Init();
91  online->AddTask((FairTask*)triplet_finder);
92 
93  // initialize display
94  TCanvas* c1 = new TCanvas("c1");
95  c1->Range(-42,-42,42,42);
96  c1->SetCanvasSize(1200, 1200);
97  TText* mytext = new TText();
98 
99 
100  // event loop!
101  int current_time = 0;
102  //int delta_t = 5;
103  int delta_t = 20;
104  int final_time = 300;
105  online->Init();
106 
107  while( current_time < final_time ) {
108  //online->LoadHits( PndOnlineManager::kHESRRevolution );
109  online->LoadHits( delta_t );
110  //online->LoadHits( current_time );
111  online->Process();
112  //online->Clear();
113  current_time += delta_t;
114 
115 
116  //Draw the results
117  c1->Clear();
118  c1->cd();
119  DrawDetector();
120  cout << " Drawing stuff " << endl;
121  DrawIsochrones(current_time-stthitlifetime, online->GetFairHitObjectList(kSTT), tubearray);
122  //DrawFairHits(drawstackstriphits);
123  //DrawFairHits(drawstackpixelhits);
124  //DrawTripletTracks(innertriplets, midtriplets, 10);
125  //DrawTripletTracks(innertriplets, outertriplets, 45);
126  //DrawTripletTracks(midtriplets, outertriplets, 25);
127 
128 
129  // now print out the triplets
130  //online->PrintTracks();
131  TObjArray *tracks = online->GetTrackObjectList();
132  for(int i=0; i<tracks->GetEntriesFast(); ++i) {
133  PndOnlineTrack *trk_ptr = (PndOnlineTrack *)(tracks->At(i));
134  cout << " triplet cms; "; trk_ptr->Vertex().Print();
135  }
136 
137 
138  //online->GetTrackList().clear();
139 
140  mytext->DrawText(-42, -42, TString::Format("%d ns",current_time));
141  c1->Update();
142  //c1->Print("hitdisplay.png");
143  c1->Print("hitdisplay.gif+15");
144  }
145 
146  // ----- Finish -------------------------------------------------------
147  timer.Stop();
148  Double_t rtime = timer.RealTime();
149  Double_t ctime = timer.CpuTime();
150  cout << endl << endl;
151  cout << "Macro finished succesfully." << endl;
152  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
153  cout << endl;
154  // ------------------------------------------------------------------------
155 
156 
157  return 0;
158 }
TFile filereco("MvdStt_Test_reco.root")
Int_t i
Definition: run_full.C:25
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