35 std::cerr <<
"passed waveform is not of type PndEmcMultiwaveform" << std::endl;
44 std::vector<double> signal_low = waveform->
GetSignal();
45 std::vector<double>::iterator it_low=signal_low.begin();
48 std::vector<double> signal_high = waveform->
GetSignal();
49 std::vector<double>::iterator it_high=signal_high.begin();
53 bool active_high =
false;
54 bool active_low =
false;
62 std::set<Int_t> hits_lowgain;
63 bool overflow =
false;
65 while(it_low!=signal_low.end() && it_high!=signal_high.end()) {
77 std::cout <<
"I- PndEmcHighLowPSA: adding highgain hit: #:"<< counter_high << std::endl;
88 std::cout <<
"I- PndEmcHighLowPSA: adding highgain hits #:" << counter_high <<
",";
90 std::cout << counter_high << std::endl;
100 std::cout <<
"I- PndEmcHighLowPSA: overflow detected" << std::endl;
106 hits_lowgain.insert(counter_low);
111 std::cout <<
"I- PndEmcHighLowPSA: pileup in lowgain candidate: #" << counter_low <<
", #" << counter_low+1 << std::endl;
113 hits_lowgain.insert(counter_low);
114 hits_lowgain.insert(counter_low+1);
121 if((!active_high) && (!active_low)) {
124 std::cout <<
"I- PndEmcHighLowPSA: adding lowgain hit(s) #:";
125 for(std::set<Int_t>::iterator it=hits_lowgain.begin(); it!=hits_lowgain.end(); ++it) {
126 std::cout << *it <<
",";
128 std::cout <<
"\b\n" << std::flush;
130 for(std::set<Int_t>::iterator it=hits_lowgain.begin(); it!=hits_lowgain.end(); ++it) {
134 hits_lowgain.clear();
PndEmcPSAFPGASampleAnalyser * fHighgainPSA
virtual void GetHit(Int_t i, Double_t &energy, Double_t &time)
Get energy and time of hit.
std::vector< std::pair< PndEmcPSAFPGASampleAnalyser *, int > > fHitsInFE
virtual void put(float valueToStore)=0
PndEmcHighLowPSA(Int_t verbose=0)
virtual void GetHit(Int_t i, Double_t &energy, Double_t &time)
Get energy and time of hit.
virtual void Init(PndEmcPSAFPGASampleAnalyser *highgainPSA, PndEmcPSAFPGASampleAnalyser *lowgainPSA, Double_t overflowThreshold, Int_t highgainWfIndex=0, Int_t lowgainWfIndex=1)
virtual void Reset()
reset found hits
virtual void Reset()
reset found hits
virtual Int_t Process(const PndEmcWaveform *waveform)
Find Hits in Waveform.
Double_t fOverflowThreshold
virtual Int_t GetWaveformIdx(Int_t i)
PndEmcPSAFPGASampleAnalyser * fLowgainPSA