ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
|
Go to the documentation of this file.
8 #include <Math/Point3D.h>
9 #include <Math/Point3Dfwd.h>
10 #include <TVirtualFFT.h>
24 if (fQName !=
"Qreco") {
25 auto charge = std::make_unique<AtPadArray>();
27 for (
int i = 0; i < 512; ++i)
33 auto diffPad = std::make_unique<AtPad>(pad->
GetPadNum());
35 for (
int i = 0; i < fIterations; i++) {
36 for (
int r = 0; r < 512; r++) {
38 for (
int a = 0; a < r + 1; a++) {
39 reconSig +=
dynamic_cast<AtPadArray *
>(pad->
GetAugment(fQName))->GetArray(a) * respPad.GetADC(r - a);
41 diffPad->SetADC(r, pad->
GetADC(r) - reconSig);
43 auto testPad = std::make_unique<AtPad>(pad->
GetPadNum());
44 testPad->SetADC(diffPad->GetADC());
47 for (
int r = 0; r < 512; r++) {
49 charge +=
dynamic_cast<AtPadArray *
>(testPad->GetAugment(
"Qreco"))->GetArray(r);
static std::unique_ptr< AtPadFFT > CreateFromFFT(const TVirtualFFT *fft)
const traceDouble & GetArray() const
virtual HitVector AnalyzePad(AtPad *pad) override
virtual HitVector chargeToHits(AtPad &charge, std::string qName)
std::unique_ptr< TVirtualFFT > fFFT
std::vector< std::unique_ptr< AtHit > > HitVector
AtPad & GetResponse(int padNum)
Get the AtPad describing the response of the electronics.
ROOT::Math::XYZPoint XYZPoint
ROOT::Math::XYZPoint XYZPoint
AtPadBase * GetAugment(std::string name)
const trace & GetADC() const
Holds an addition array of doubles for an AtPad.
Container class for AtPadBase objects.
HitVector AnalyzeFFTpad(AtPad &pad)
Assumes that the pad has it's fourier transform information filled.
AtPadBase * AddAugment(std::string name, std::unique_ptr< AtPadBase > augment)