FairRoot/PandaRoot
testFilter.C
Go to the documentation of this file.
1 // Test digital filter to reconstruct parameters from waveforms
2 // Input paramters event index and index of waveform in the events
3 int testFilter(Int_t i_event=0, Int_t i_wf=0)
4 {
5  gROOT->SetStyle("Plain");
6  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
7  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
8  rootlogon();
9  basiclibs();
10 
11  TFile* f = new TFile("digi_emc.root"); //file you want to analyse
12  TTree *t=(TTree *) f->Get("pndsim") ;
13  TClonesArray* waveform_array=new TClonesArray("PndEmcWaveform");
14  t->SetBranchAddress("EmcWaveform",&waveform_array);
15 
17 
18  TH1D * h1 = new TH1D("h1","Signal ",63,0,64.);
19  TH1D * h2 = new TH1D("h2","Filtered signal ",63,0,64.);
20 
21  // Cluster energy
22  t->GetEntry(i_event);
23  PndEmcWaveform *wf=(PndEmcWaveform*)waveform_array->At(i_wf);
24  std::vector<Double_t> signal = wf->GetSignal();
25  std::vector<Double_t> output;
26 
27  // Moving average filter
28  PndEmcFadcFilter *flt1 = new PndEmcFadcFilter();
29  Double_t data[3]={1./3.,1./3.,1./3.};
30  flt1->SetData(data,3,0);
31  //flt1->Filter(signal, output);
32 
33  //Trapezoidal filter
34  PndEmcFadcFilter *flt2 = new PndEmcFadcFilter();
35  flt2->SetupTrapez(20,20);
36  //flt2->SetNormalizeFloating(1./4.);
37  flt2->Filter(signal, output);
38 
39 
40  for (Int_t i=0; i<signal.size();i++)
41  {
42  h1->SetBinContent(i,signal[i]);
43  h2->SetBinContent(i,output[i]);
44  }
45 
46  TCanvas *c1 = new TCanvas();
47  h1->Draw();
48  TCanvas *c2 = new TCanvas();
49  h2->Draw();
50 
51  return 0;
52 }
virtual void Filter(const std::vector< Double_t > &in, std::vector< Double_t > &out) const
basiclibs()
virtual std::vector< double > GetSignal() const
Int_t i
Definition: run_full.C:25
c2
Definition: plot_dirc.C:39
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FADC FIR (finite impulse response) filter.
int testFilter(Int_t i_event=0, Int_t i_wf=0)
Definition: testFilter.C:3
Double_t
static void Init(Int_t MapVersion)
TFile * f
Definition: bump_analys.C:12
c1
Definition: plot_dirc.C:35
represents a simulated waveform in an emc crystal
void SetData(Double_t data[], Int_t i_size, Int_t i_offset)
TTree * t
Definition: bump_analys.C:13
void SetupTrapez(Int_t i_rise, Int_t i_flat)