FairRoot/PandaRoot
digi_analys.C
Go to the documentation of this file.
1 {
2  // Macro loads a file after digitization and plots the waveform
3 
4 
5  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
6  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
7  rootlogon();
8  basiclibs();
9 
10  TFile* f = new TFile("digi_emc.root"); // the sim file you want to analyse
11  TTree *t=(TTree *) f->Get("pndsim") ;
12 
13  TClonesArray* digi_array=new TClonesArray("EmcDigi");
14 
15  t->SetBranchAddress("EmcDigi",&digi_array);
16 
18  TH1F *h1= new TH1F("h1","Energy ratio",100,0.,10.);
19  for (Int_t j=0; j< t->GetEntriesFast(); j++)
20  {
21  t->GetEntry(j);
22  for (Int_t i=0; i<digi_array->GetEntriesFast(); i++)
23  {
24  EmcDigi *digi=(EmcDigi*)digi_array->At(i);
25  digi_energy=digi->GetEnergy();
26  std::vector<CbmEmcHit*> hitList=digi->itsHitList();
27  if (hitList.size()!=0)
28  {
29  hit_energy=hitList[0]->GetEnergy();
30  if (hit_energy>1e-3) h1->Fill(digi_energy/hit_energy);
31  }
32  }
33  }
34 
35  TCanvas* c1 = new TCanvas("c1", "", 100, 100, 800, 800);
36  h1->Draw();
37  c1->Update();
38 
39 /* t->GetEntry(0);
40  EmcDigi *digi=(EmcDigi*)digi_array->At(0);
41  digi->ValidateTCI();
42  TwoCoordIndex *tci=digi->GetTCI();
43  cout<<"tci->itsIndex()="<<tci->itsIndex()<<endl;*/
44 
45 /* TClonesArray *wfa=new TClonesArray("EmcWaveform");
46  wfa->BypassStreamer(kFALSE);
47  t->SetBranchAddress("EmcWaveform",&wfa);
48  t->GetEntry(0);
49  EmcWaveform *wf=(EmcWaveform*) wfa->At(0);
50  TwoCoordIndex *tci=wf->GetTCI();*/
51  //cout<<"tci->itsIndex()="<<tci->itsIndex()<<endl;
52 
53 
54 
55 
56 
57  if(0)
58  {
59  TClonesArray *wfa=new TClonesArray("EmcWaveform");
60  t->SetBranchAddress("EmcWaveform",&wfa);
61 
62  t->GetEntry(0);
63 
64  char ch;
65 
66  TH1F *h2= new TH1F("h2","Waveform",64,1.,64.);
67  TCanvas* c2 = new TCanvas("c2", "", 100, 100, 800, 800);
68  for (Int_t i=0; i<wfa->GetEntriesFast(); i++)
69  {
70  h2->Reset();
71  EmcWaveform *wf=(EmcWaveform*)wfa->At(i);
72  vector<double> signal = wf->GetSignal();
73 
74  for (Int_t j=0;j<signal.size();j++)
75  {
76  h2->SetBinContent(j,signal[j]);
77  j++;
78  }
79 
80  h2->Draw();
81  c2->Update();
82  gPad->WaitPrimitive();
83  cin.get(ch);
84  }
85  }
86  //t->Draw("EmcWaveform.fSignal");
87 
88 }
89 
TClonesArray * digi
basiclibs()
Int_t i
Definition: run_full.C:25
TClonesArray * digi_array
c2
Definition: plot_dirc.C:39
TFile * f
Definition: bump_analys.C:12
std::vector< CbmEmcHit * > hitList
Definition: digi_analys.C:26
c1
Definition: plot_dirc.C:35
TTree * t
Definition: bump_analys.C:13
double digi_energy
Definition: digi_analys.C:17
double hit_energy
Definition: digi_analys.C:17