FairRoot/PandaRoot
NHitsPerEvent.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 TH1I* h1 = new TH1I("h1", "Hits per Event", 101, -0.5, 100.5);
19 
20 void Init()
21 {
22  TFile* f = new TFile("2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Event.root", "READ");
23  t = (TTree*)f->Get("pndsim");
24 // t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Residuals.root");
25 // t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_PosCorrected_Track.root");
26 // t->AddFriend("pndsim", "2014-10-27-00-06-02_50_MHz_Filtered_TimeCorrectedSorted_Event.root");
27  t->StartViewer();
28 
29  t->SetBranchAddress("MVDHitsPixelPosCorrected", &mvdHitArray);
30 // t->SetBranchAddress("MvdProjectedHit", &mvdProjectedArray);
31 // t->SetBranchAddress("MvdTrack", &trackArray);
32 
33  gHitPoints->SetLineColor(kRed);
34  gHitPoints->SetMarkerStyle(2);
35  gHitPoints->SetMarkerColor(kRed);
36 
37  gProjections->SetLineColor(kBlue);
38  gProjections->SetMarkerStyle(5);
39  gProjections->SetMarkerColor(kBlue);
40 
41 
42 // mg->Add(gProjections, "Projected");
43  mg->Add(gHitPoints, "Hits");
44  t->GetEntry(0);
45 }
46 
47 void SetEntryNr(Int_t nr){
48  gEntryNr = nr;
49  t->GetEntry(gEntryNr);
50 }
51 
52 void Next(){
53  Bool_t run = kTRUE;
54  while(run){
55  t->GetEntry(++gEntryNr);
56  if (mvdProjectedArray->GetEntriesFast() > 0){
57  run = kFALSE;
58  }
59  }
60  std::cout << "NextEntry: " << gEntryNr << std::endl;
61  Draw();
62 }
63 
64 void Draw(){
65 
66  std::cout << "mvdHitArray: " << mvdHitArray->GetEntries() << " projectedHitArray " << mvdProjectedArray->GetEntries() << std::endl;
67 
68 // gHitPoints->Clear();
71  //if (gHitPoints->GetN() != x.size()) gHitPoints->Expand(x.size());
72 
73  std::cout << "NHits: " << gHitPoints->GetN() << std::endl;
74  gHitPoints->Draw("apl");
75  gProjections->Draw("pl");
76 }
77 
78 void ExtractData(TClonesArray* array, TGraph* g){
79  std::map<Double_t, Double_t> x;
80  std::map<Double_t, Double_t> y;
81  for (int i = 0; i < array->GetEntriesFast(); i++){
82  PndSdsHit* myHit = (PndSdsHit*)array->At(i);
83  x[myHit->GetZ()] = myHit->GetX();
84  y[myHit->GetZ()] = myHit->GetY();
85  std::cout << i << " : (" << myHit->GetX() << "/" << myHit->GetY() << "/" << myHit->GetZ() << ")" << std::endl;
86  }
87  for (int j = 0; j < g->GetN(); j++) g->RemovePoint(j);
88 
89  std::map<Double_t, Double_t >::iterator yit = y.begin();
90  int i = 0;
91  for (std::map<Double_t, Double_t >::iterator xit = x.begin() ; xit != x.end(); xit++, yit++, i++){
92  g->SetPoint(i, xit->second, yit->second);
93  }
94 }
95 
97 {
98  Init();
99  for (int i = 0; i < t->GetEntries(); i++){
100  t->GetEntry(i);
101  h1->Fill(mvdHitArray->GetEntriesFast());
102  }
103  h1->Draw();
104  return 0;
105 }
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 NHitsPerEvent()
Definition: NHitsPerEvent.C:96
Int_t gEntryNr
Definition: NHitsPerEvent.C:10
TFile * f
Definition: bump_analys.C:12
Double_t x
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