FairRoot/PandaRoot
TrackPointsVis.C
Go to the documentation of this file.
1 /*
2  * TrackPointsVis.C
3  *
4  * Created on: 04.09.2015
5  * Author: Stockmanns
6  */
7 
8 #include <map>
9 
10 Int_t gEntryNr = 0;
11 TTree* t;
12 TClonesArray* mvdHitArray = new TClonesArray("PndSdsHit");
13 TClonesArray* mvdProjectedArray = new TClonesArray("PndSdsHit");
14 TClonesArray* trackArray = new TClonesArray("PndTrack");
15 TGraph* gHitPoints = new TGraph(4);
16 TGraph* gProjections = new TGraph(4);
17 TMultiGraph* mg = new TMultiGraph();
18 
19 void Init()
20 {
21  TFile* f = new TFile("2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Event.root", "READ");
22  t = (TTree*)f->Get("pndsim");
23  t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Residuals.root");
24  t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Track.root");
25  t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_TimeCorrectedSorted_Event.root");
26  t->StartViewer();
27 
28  t->SetBranchAddress("MVDHitsPixelPosCorrected", &mvdHitArray);
29  t->SetBranchAddress("MvdProjectedHit", &mvdProjectedArray);
30  t->SetBranchAddress("MvdTrack", &trackArray);
31 
32  gHitPoints->SetLineColor(kRed);
33  gHitPoints->SetMarkerStyle(2);
34  gHitPoints->SetMarkerColor(kRed);
35 
36  gProjections->SetLineColor(kBlue);
37  gProjections->SetMarkerStyle(5);
38  gProjections->SetMarkerColor(kBlue);
39 
40 
41 // mg->Add(gProjections, "Projected");
42  mg->Add(gHitPoints, "Hits");
43  t->GetEntry(0);
44 }
45 
46 void SetEntryNr(Int_t nr){
47  gEntryNr = nr;
48  t->GetEntry(gEntryNr);
49 }
50 
51 void Next(){
52  Bool_t run = kTRUE;
53  while(run){
54  t->GetEntry(++gEntryNr);
55  if (mvdProjectedArray->GetEntriesFast() > 0){
56  run = kFALSE;
57  }
58  }
59  std::cout << "NextEntry: " << gEntryNr << std::endl;
60  Draw();
61 }
62 
63 void Draw(){
64 
65  std::cout << "mvdHitArray: " << mvdHitArray->GetEntries() << " projectedHitArray " << mvdProjectedArray->GetEntries() << std::endl;
66 
67 // gHitPoints->Clear();
70  //if (gHitPoints->GetN() != x.size()) gHitPoints->Expand(x.size());
71 
72  std::cout << "NHits: " << gHitPoints->GetN() << std::endl;
73  gHitPoints->Draw("apl");
74  gProjections->Draw("pl");
75 }
76 
77 void ExtractData(TClonesArray* array, TGraph* g){
78  std::map<Double_t, Double_t> x;
79  std::map<Double_t, Double_t> y;
80  for (int i = 0; i < array->GetEntriesFast(); i++){
81  PndSdsHit* myHit = (PndSdsHit*)array->At(i);
82  x[myHit->GetZ()] = myHit->GetX();
83  y[myHit->GetZ()] = myHit->GetY();
84  std::cout << i << " : (" << myHit->GetX() << "/" << myHit->GetY() << "/" << myHit->GetZ() << ")" << std::endl;
85  }
86  for (int j = 0; j < g->GetN(); j++) g->RemovePoint(j);
87 
88  std::map<Double_t, Double_t >::iterator yit = y.begin();
89  int i = 0;
90  for (std::map<Double_t, Double_t >::iterator xit = x.begin() ; xit != x.end(); xit++, yit++, i++){
91  g->SetPoint(i, xit->second, yit->second);
92  }
93 }
94 
96 {
97  Init();
98  Draw();
99  return 0;
100 }
TClonesArray * trackArray
Definition: NHitsPerEvent.C:14
Int_t run
Definition: autocutx.C:47
void Next()
Definition: NHitsPerEvent.C:52
Int_t i
Definition: run_full.C:25
void ExtractData(TClonesArray *array, TGraph *g)
Definition: NHitsPerEvent.C:78
TMultiGraph * mg
Definition: NHitsPerEvent.C:17
TFile * g
TGraph * gHitPoints
Definition: NHitsPerEvent.C:15
TClonesArray * mvdHitArray
Definition: NHitsPerEvent.C:12
tree Draw("fELoss:TMath::Sqrt(fPx_out*fPx_out+ fPy_out*fPy_out+ fPz_out*fPz_out)", ppos &&"fELoss < 0.04")
Int_t gEntryNr
Definition: NHitsPerEvent.C:10
TFile * f
Definition: bump_analys.C:12
Double_t x
int TrackPointsVis()
fRun Init()
Definition: NHitsPerEvent.C:20
void SetEntryNr(Int_t nr)
Definition: NHitsPerEvent.C:47
TTree * t
Definition: bump_analys.C:13
Double_t y
TClonesArray * mvdProjectedArray
Definition: NHitsPerEvent.C:13
TGraph * gProjections
Definition: NHitsPerEvent.C:16