FairRoot/PandaRoot
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndEmcPSAFPGASampleAnalyser Class Referenceabstract

#include <PndEmcPSAFPGASampleAnalyser.h>

Inheritance diagram for PndEmcPSAFPGASampleAnalyser:
PndEmcAbsPSA PndEmcPSAFPGADigitalFilterAnalyser PndEmcPSAFPGAIntegratingAnalyser PndEmcPSAFPGAPileupAnalyser

Classes

struct  SampleAnalyserParams
 

Public Types

enum  status_t {
  kBaseline, kInPulse, kPulseDetected, kPulseFinished,
  kPileupFinished, kUndefined =99
}
 

Public Member Functions

 PndEmcPSAFPGASampleAnalyser ()
 
 PndEmcPSAFPGASampleAnalyser (const std::string &fname)
 
virtual ~PndEmcPSAFPGASampleAnalyser ()
 
virtual void initFromFile (const std::string &fname)
 
virtual void reset ()=0
 
virtual void put (float valueToStore)=0
 
virtual void setBaseline (float newBaseline)
 
virtual float baseline ()=0
 
int nHits ()
 
float sampleTime (int index)
 
float sampleAmplitude (int index)
 
float sampleIntegral (int index)
 
virtual Int_t Process (const PndEmcWaveform *waveform)
 Find Hits in Waveform. More...
 
virtual void Reset ()
 reset found hits More...
 
virtual void GetHit (Int_t i, Double_t &energy, Double_t &time)
 Get energy and time of hit. More...
 
virtual void Init (const std::vector< Double_t > &params)
 
status_t GetStatus ()
 
virtual void Process (const PndEmcWaveform *waveform, Double_t &amplitude, Double_t &time)
 Deprecated. Do not use. More...
 
 ClassDef (PndEmcAbsPSA, 1)
 

Protected Member Functions

virtual void init (SampleAnalyserParams &params)
 
 ClassDef (PndEmcPSAFPGASampleAnalyser, 2)
 

Protected Attributes

SampleAnalyserParams analyserParams
 
float baseline_value
 
unsigned int local_time
 
bool pulse_detected
 
int rough_pulse_timing
 
int cf_zero_crossing_points
 
PndEmcPSAFPGAFilterCFCF_filter
 
PndEmcPSAFPGAFilterMAMA_triggering
 
PndEmcPSAFPGAFilterDelayMA_delay
 
PndEmcPSAFPGAFilterDelayCF_delay
 
PndEmcPSAFPGAFilterDelaySignal_delay
 
PndEmcPSAFPGALinFitterCF_Fitter
 
int Number_of_hits
 
float time [MAX_NUMBER_OF_HITS]
 
float integral [MAX_NUMBER_OF_HITS]
 
float amplitude [MAX_NUMBER_OF_HITS]
 
status_t status
 

Detailed Description

Definition at line 15 of file PndEmcPSAFPGASampleAnalyser.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

PndEmcPSAFPGASampleAnalyser::PndEmcPSAFPGASampleAnalyser ( )

Definition at line 21 of file PndEmcPSAFPGASampleAnalyser.cxx.

References baseline_value, CF_delay, CF_filter, CF_Fitter, MA_delay, MA_triggering, and Signal_delay.

21  : status(kUndefined) {
28  baseline_value = 7000.;
29 }
PndEmcPSAFPGAFilterDelay * MA_delay
PndEmcPSAFPGAFilterDelay * Signal_delay
PndEmcPSAFPGAFilterDelay * CF_delay
PndEmcPSAFPGASampleAnalyser::PndEmcPSAFPGASampleAnalyser ( const std::string &  fname)

Definition at line 31 of file PndEmcPSAFPGASampleAnalyser.cxx.

References baseline_value, CF_delay, CF_filter, CF_Fitter, initFromFile(), MA_delay, MA_triggering, and Signal_delay.

31  : status(kUndefined) {
38  baseline_value = 7000.;
39  initFromFile(fname);
40 }
PndEmcPSAFPGAFilterDelay * MA_delay
virtual void initFromFile(const std::string &fname)
PndEmcPSAFPGAFilterDelay * Signal_delay
PndEmcPSAFPGAFilterDelay * CF_delay
PndEmcPSAFPGASampleAnalyser::~PndEmcPSAFPGASampleAnalyser ( )
virtual

Definition at line 42 of file PndEmcPSAFPGASampleAnalyser.cxx.

42  {
43 }

Member Function Documentation

virtual float PndEmcPSAFPGASampleAnalyser::baseline ( )
pure virtual
PndEmcAbsPSA::ClassDef ( PndEmcAbsPSA  ,
 
)
inherited
PndEmcPSAFPGASampleAnalyser::ClassDef ( PndEmcPSAFPGASampleAnalyser  ,
 
)
protected
void PndEmcPSAFPGASampleAnalyser::GetHit ( Int_t  i,
Double_t energy,
Double_t time 
)
virtual

Get energy and time of hit.

Parameters
Int_tIndex of Hit
Double_tEnergy of Hit
Double_tTime of Hit
Returns

Implements PndEmcAbsPSA.

Reimplemented in PndEmcPSAFPGAPileupAnalyser.

Definition at line 189 of file PndEmcPSAFPGASampleAnalyser.cxx.

References sampleAmplitude(), and sampleTime().

Referenced by PndEmcHighLowPSA::GetHit().

189  {
190  //energy = this->sampleIntegral(i);
191  energy = this->sampleAmplitude(i);
192  t = this->sampleTime(i);
193 }
Int_t i
Definition: run_full.C:25
TTree * t
Definition: bump_analys.C:13
Double_t energy
Definition: plot_dirc.C:15
status_t PndEmcPSAFPGASampleAnalyser::GetStatus ( )
inline

Definition at line 58 of file PndEmcPSAFPGASampleAnalyser.h.

References status.

Referenced by PndEmcHighLowPSA::Process().

void PndEmcPSAFPGASampleAnalyser::Init ( const std::vector< Double_t > &  params)
virtual

Definition at line 132 of file PndEmcPSAFPGASampleAnalyser.cxx.

References PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_delay, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fit_offset, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fitter_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_ratio, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::clock_unit, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::hit_threshold, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::iafactor, init(), PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::ma_trig_M, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_length, and PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_tau.

132  {
133  SampleAnalyserParams newParams;
134  newParams.ma_trig_M = (int) params.at(0);
135  newParams.hit_threshold = params.at(1);
136  newParams.cf_delay = (int) params.at(2);
137  newParams.cf_ratio = params.at(3);
138  newParams.cf_fitter_length = (int) params.at(4);
139  newParams.cf_fit_offset = (int) params.at(5);
140  newParams.mwd_length = (int) params.at(6);
141  newParams.mwd_tau = params.at(7);
142  newParams.clock_unit = params.at(8);
143  newParams.iafactor = params.at(9);
144  /*
145  std::cout << newParams.ma_trig_M << std::endl;
146  std::cout << newParams.hit_threshold << std::endl;
147  std::cout << newParams.cf_delay << std::endl;
148  std::cout << newParams.cf_ratio << std::endl;
149  std::cout << newParams.cf_fitter_length << std::endl;
150  std::cout << newParams.cf_fit_offset << std::endl;
151  std::cout << newParams.mwd_length << std::endl;
152  std::cout << newParams.mwd_tau << std::endl;
153 */
154  init(newParams);
155  return;
156 }
virtual void init(SampleAnalyserParams &params)
void PndEmcPSAFPGASampleAnalyser::init ( PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams params)
protectedvirtual

Reimplemented in PndEmcPSAFPGADigitalFilterAnalyser.

Definition at line 45 of file PndEmcPSAFPGASampleAnalyser.cxx.

References analyserParams, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_delay, CF_delay, CF_filter, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fit_offset, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fitter_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_ratio, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::clock_unit, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::hit_threshold, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::iafactor, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::ma_trig_M, MA_triggering, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd2_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd2_tau, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd3_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd3_tau, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_tau, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::rough_timing_corr, PndEmcPSAFPGAFilterDelay::set(), PndEmcPSAFPGAFilterMA::set(), PndEmcPSAFPGAFilterCF::set(), PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::sig_delay, and Signal_delay.

Referenced by PndEmcPSAFPGADigitalFilterAnalyser::init(), Init(), initFromFile(), and PndEmcPSAFPGAPileupAnalyser::InitParameters().

45  {
62 
67 
68  return;
69 }
void set(unsigned int newBufferSize)
void set(unsigned int newBufferSize, float newRatio)
PndEmcPSAFPGAFilterDelay * Signal_delay
void set(unsigned int newBufferSize)
PndEmcPSAFPGAFilterDelay * CF_delay
void PndEmcPSAFPGASampleAnalyser::initFromFile ( const std::string &  fname)
virtual

Definition at line 71 of file PndEmcPSAFPGASampleAnalyser.cxx.

References PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_delay, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fit_offset, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_fitter_length, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::cf_ratio, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::clock_unit, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::hit_threshold, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::iafactor, init(), PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::ma_trig_M, PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_length, and PndEmcPSAFPGASampleAnalyser::SampleAnalyserParams::mwd_tau.

Referenced by PndEmcPSAFPGASampleAnalyser().

71  {// fname //[R.K.03/2017] unused variable(s)
72  SampleAnalyserParams newParams;
73  newParams.hit_threshold = 200;
74  newParams.ma_trig_M = 30;
75  newParams.cf_delay = 5;
76  newParams.cf_ratio = 0.15;
77  newParams.cf_fitter_length = 5;
78  newParams.cf_fit_offset = 2;
79  newParams.mwd_length = 90;
80  newParams.mwd_tau = 2500;
81  newParams.clock_unit = 10;//ns
82  newParams.iafactor= 1.;//ns
83 
84 /* std::ifstream ifile(fname.c_str());
85  if(!ifile) {
86  std::cerr << "Can not open input file: " << fname << "\n";
87  exit(1);
88  }
89 
90  std::set<std::string> options;
91  options.insert("MWD_Tau");
92  options.insert("MWD_Length");
93  options.insert("TR_Thresh");
94  options.insert("CFD_Ratio");
95  options.insert("CFD_Delay");
96  options.insert("Fit_ofset");
97  options.insert("Fitter_L");
98  options.insert("MA_trig");
99 
100  //parser
101  for (pod::config_file_iterator i(ifile, options), e ; i != e; ++i) {
102  if (i->string_key == "MWD_Tau") {
103  newParams.mwd_tau = atof((i->value[0]).c_str());
104  }
105  if (i->string_key == "MWD_Length") {
106  newParams.mwd_length = atoi((i->value[0]).c_str());
107  }
108  if (i->string_key == "TR_Thresh") {
109  newParams.hit_threshold = atof((i->value[0]).c_str());
110  }
111  if (i->string_key == "CFD_Ratio") {
112  newParams.cf_ratio = atof((i->value[0]).c_str());
113  }
114  if (i->string_key == "CFD_Delay") {
115  newParams.cf_delay = atoi((i->value[0]).c_str());
116  }
117  if (i->string_key == "Fit_ofset") {
118  newParams.cf_fit_offset = atoi((i->value[0]).c_str());
119  }
120  if (i->string_key == "Fitter_L") {
121  newParams.cf_fitter_length = atoi((i->value[0]).c_str());
122  }
123  if (i->string_key == "MA_trig") {
124  newParams.ma_trig_M = atoi((i->value[0]).c_str());
125  }
126  }
127 
128  ifile.close();*/
129  init(newParams);
130  return;
131 }
virtual void init(SampleAnalyserParams &params)
int PndEmcPSAFPGASampleAnalyser::nHits ( )
inline
Int_t PndEmcPSAFPGASampleAnalyser::Process ( const PndEmcWaveform waveform)
virtual

Find Hits in Waveform.

Parameters
PndEmcWaveform
Returns
Return number of hits, negative if an error occurred

Implements PndEmcAbsPSA.

Reimplemented in PndEmcPSAFPGADigitalFilterAnalyser.

Definition at line 177 of file PndEmcPSAFPGASampleAnalyser.cxx.

References PndEmcWaveform::GetSignal(), nHits(), put(), and reset().

177  {
178  //std::cout<<"PndEmcPSAFPGASampleAnalyser::Process#"<<waveform->GetTimeStamp()
179  // <<", "<<waveform->GetActiveTime()<<std::endl;
180  reset();
181  std::vector<double> signal = waveform->GetSignal();
182  std::vector<double>::iterator it;
183  for(it = signal.begin(); it < signal.end();it++){
184  this->put(*it);
185  }
186  return this->nHits();
187 }
virtual std::vector< double > GetSignal() const
virtual void put(float valueToStore)=0
void PndEmcAbsPSA::Process ( const PndEmcWaveform waveform,
Double_t amplitude,
Double_t time 
)
virtualinherited

Deprecated. Do not use.

Parameters
PndEmcWaveform
Double_t
Double_t
Returns

Reimplemented in PndEmcPSAMatchedDigiFilter, PndEmcPSAParabolic, PndEmcPSAParabolicBaseline, and PndEmcPSATrapDigiFilter.

Definition at line 2 of file PndEmcAbsPSA.cxx.

References PndEmcAbsPSA::GetHit(), and PndEmcAbsPSA::Process().

2  {
3  if(Process(waveform)>0){
4  GetHit(0,amplitude,time);
5  }else{
6  amplitude = 0.;
7  time = 0.;
8  }
9  }; //deprecated do not use
virtual Int_t Process(const PndEmcWaveform *waveform)=0
Find Hits in Waveform.
virtual void GetHit(Int_t i, Double_t &energy, Double_t &time)=0
Get energy and time of hit.
virtual void PndEmcPSAFPGASampleAnalyser::put ( float  valueToStore)
pure virtual
virtual void PndEmcPSAFPGASampleAnalyser::reset ( )
pure virtual
virtual void PndEmcPSAFPGASampleAnalyser::Reset ( )
inlinevirtual

reset found hits

Returns

Reimplemented from PndEmcAbsPSA.

Definition at line 34 of file PndEmcPSAFPGASampleAnalyser.h.

References reset().

Referenced by PndEmcHighLowPSA::Reset().

34 {this->reset();};
float PndEmcPSAFPGASampleAnalyser::sampleAmplitude ( int  index)

Definition at line 165 of file PndEmcPSAFPGASampleAnalyser.cxx.

References amplitude, and nHits().

Referenced by PndEmcPSAFPGAPileupAnalyser::GetEnergyMeasures(), PndEmcPSAFPGAPileupAnalyser::GetHit(), and GetHit().

165  {
166  if(index < nHits() && index >= 0)
167  return amplitude[index];
168  return 0.0;
169 }
float amplitude[MAX_NUMBER_OF_HITS]
float PndEmcPSAFPGASampleAnalyser::sampleIntegral ( int  index)

Definition at line 171 of file PndEmcPSAFPGASampleAnalyser.cxx.

References integral, and nHits().

Referenced by PndEmcPSAFPGAPileupAnalyser::GetEnergyMeasures().

171  {
172  if (index < nHits() && index >= 0)
173  return integral[index];
174  return 0.0;
175 }
float integral[MAX_NUMBER_OF_HITS]
float PndEmcPSAFPGASampleAnalyser::sampleTime ( int  index)

Definition at line 159 of file PndEmcPSAFPGASampleAnalyser.cxx.

References nHits(), and time.

Referenced by PndEmcPSAFPGAPileupAnalyser::GetHit(), and GetHit().

159  {
160  if (index < nHits() && index >= 0)
161  return time[index];
162  return 0.0;
163 }
virtual void PndEmcPSAFPGASampleAnalyser::setBaseline ( float  newBaseline)
inlinevirtual

Member Data Documentation

float PndEmcPSAFPGASampleAnalyser::amplitude[MAX_NUMBER_OF_HITS]
protected
SampleAnalyserParams PndEmcPSAFPGASampleAnalyser::analyserParams
protected
float PndEmcPSAFPGASampleAnalyser::baseline_value
protected
PndEmcPSAFPGAFilterDelay* PndEmcPSAFPGASampleAnalyser::CF_delay
protected
PndEmcPSAFPGAFilterCF* PndEmcPSAFPGASampleAnalyser::CF_filter
protected
PndEmcPSAFPGALinFitter* PndEmcPSAFPGASampleAnalyser::CF_Fitter
protected
int PndEmcPSAFPGASampleAnalyser::cf_zero_crossing_points
protected
float PndEmcPSAFPGASampleAnalyser::integral[MAX_NUMBER_OF_HITS]
protected
unsigned int PndEmcPSAFPGASampleAnalyser::local_time
protected
PndEmcPSAFPGAFilterDelay* PndEmcPSAFPGASampleAnalyser::MA_delay
protected

Definition at line 73 of file PndEmcPSAFPGASampleAnalyser.h.

Referenced by PndEmcPSAFPGASampleAnalyser().

PndEmcPSAFPGAFilterMA* PndEmcPSAFPGASampleAnalyser::MA_triggering
protected
int PndEmcPSAFPGASampleAnalyser::Number_of_hits
protected
bool PndEmcPSAFPGASampleAnalyser::pulse_detected
protected
int PndEmcPSAFPGASampleAnalyser::rough_pulse_timing
protected
PndEmcPSAFPGAFilterDelay* PndEmcPSAFPGASampleAnalyser::Signal_delay
protected
status_t PndEmcPSAFPGASampleAnalyser::status
protected

Definition at line 84 of file PndEmcPSAFPGASampleAnalyser.h.

Referenced by GetStatus(), and PndEmcPSAFPGAPileupAnalyser::put().

float PndEmcPSAFPGASampleAnalyser::time[MAX_NUMBER_OF_HITS]
protected

The documentation for this class was generated from the following files: