ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtFilterFPN.cxx
Go to the documentation of this file.
1 #include "AtFilterFPN.h"
2 
3 #include "AtPadReference.h" // for AtPadReference
4 #include "AtRawEvent.h"
5 
6 #include <FairLogger.h>
7 
8 #include <memory> // for allocator
9 #include <unordered_map> // for _Node_const_iterator, operator!=, unorde...
10 
11 AtFilterFPN::AtFilterFPN(AtMapPtr map, bool avgAgets, Int_t num)
12  : AtFilterSubtraction(map, num, avgAgets ? 4 : 16), fAverageAgets(avgAgets)
13 {
14 }
15 
17 {
18  Clear();
19 
20  for (const auto &[ref, pad] : event->GetFpnPads())
21  processPad(ref, pad);
23  fEventNumber = event->GetEventID();
24 }
25 
27 {
28  for (int i = 2; i < 510; ++i)
29  if (std::abs(pad.GetADC(i) - pad.GetADC(i - 1)) > fThreshold) {
30  LOG(debug) << "Skipping " << std::abs(pad.GetADC(i) - pad.GetADC(i - 1)) << " at " << i;
31  return false;
32  }
33  LOG(debug) << "Adding pad";
34  return true;
35 }
36 
38 {
39  if (fAverageAgets)
40  return ref.asad;
41  return 4 * ref.asad + ref.aget;
42 }
AtFilterFPN::fAverageAgets
bool fAverageAgets
Definition: AtFilterFPN.h:15
AtPadReference::aget
Int_t aget
Definition: AtPadReference.h:23
AtRawEvent.h
AtFilterFPN::InitEvent
virtual void InitEvent(AtRawEvent *event) override
Called once for each event at the start of the Exec phase.
Definition: AtFilterFPN.cxx:16
AtPadReference.h
AtFilterFPN::AtFilterFPN
AtFilterFPN(AtMapPtr map, bool averageAgets, Int_t numCoBos=10)
Definition: AtFilterFPN.cxx:11
AtFilterSubtraction::Clear
void Clear()
Definition: AtFilterSubtraction.cxx:26
AtPadReference::asad
Int_t asad
Definition: AtPadReference.h:22
AtFilterFPN::isValidPad
virtual bool isValidPad(const AtPad &pad) override
Definition: AtFilterFPN.cxx:26
AtRawEvent
Definition: AtRawEvent.h:34
AtFilterSubtraction::AverageBaseline
void AverageBaseline()
Definition: AtFilterSubtraction.cxx:85
AtMapPtr
std::shared_ptr< AtMap > AtMapPtr
Definition: AtSpaceChargeTask.h:18
AtFilterSubtraction::processPad
void processPad(const AtPadReference &ref, const AtPad &pad)
Definition: AtFilterSubtraction.cxx:69
AtFilterSubtraction
Definition: AtFilterSubtraction.h:29
AtFilterSubtraction::fEventNumber
Int_t fEventNumber
Definition: AtFilterSubtraction.h:32
AtPad::GetADC
const trace & GetADC() const
Definition: AtPad.cxx:97
AtRawEvent::GetFpnPads
const FpnMap & GetFpnPads() const
Definition: AtRawEvent.h:136
AtFilterFPN.h
AtFilterFPN::getAsad
virtual int getAsad(const AtPadReference &ref) override
Definition: AtFilterFPN.cxx:37
AtPad
Container class for AtPadBase objects.
Definition: AtPad.h:38
AtFilterSubtraction::fThreshold
Double_t fThreshold
Definition: AtFilterSubtraction.h:33
AtPadReference
Definition: AtPadReference.h:20