ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtROOTresponse.cxx
Go to the documentation of this file.
1 #include "AtROOTresponse.h"
2 
3 #include "AtElectronicResponse.h"
4 #include "AtPad.h"
5 
6 #include <TFile.h>
7 #include <TObject.h>
8 
9 #include <utility> // for move
10 
11 using namespace ElectronicResponse;
12 
13 AtRootResponse::AtRootResponse(double tbTime, std::string filePath, std::string objectName) : fTBTime(tbTime)
14 {
15  TFile file(filePath.data(), "READ");
16  if (file.IsZombie())
17  throw std::invalid_argument("filePath");
18  auto *event = dynamic_cast<AtRawEvent *>(file.FindObject(objectName.data()));
19  if (event == nullptr)
20  throw std::invalid_argument("objectName");
21  fResponse = *event;
22 }
23 AtRootResponse::AtRootResponse(double tbTime, AtRawEvent response) : fTBTime(tbTime), fResponse(std::move(response)) {}
24 
25 double AtRootResponse::GetResponse(int padNum, double time) const
26 {
27  int tb = time / fTBTime;
28  auto pad = fResponse.GetPad(padNum);
29  if (pad == nullptr)
30  throw std::invalid_argument("padNum");
31 
32  return pad->GetADC(tb);
33 }
AtPad.h
AtRawEvent::GetPad
AtPad * GetPad(Int_t padNum)
Definition: AtRawEvent.h:124
AtElectronicResponse.h
ElectronicResponse::AtRootResponse::GetResponse
virtual double GetResponse(double time) const override
Definition: AtROOTresponse.h:24
AtRawEvent
Definition: AtRawEvent.h:34
ElectronicResponse::AtRootResponse::fTBTime
double fTBTime
Definition: AtROOTresponse.h:18
ElectronicResponse::AtRootResponse::fResponse
AtRawEvent fResponse
Definition: AtROOTresponse.h:17
AtROOTresponse.h
ElectronicResponse::AtRootResponse::AtRootResponse
AtRootResponse(double tbTime, AtRawEvent response)
Definition: AtROOTresponse.cxx:23
ElectronicResponse
Definition: AtVectorResponse.h:8