ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
AtPulse Class Reference

#include <AtPulse.h>

Inheritance diagram for AtPulse:
Inheritance graph
[legend]
Collaboration diagram for AtPulse:
Collaboration graph
[legend]

Public Member Functions

 AtPulse (AtMapPtr map, ResponseFunc response=nullptr)
 
 AtPulse (const AtPulse &)
 
void SetParameters (const AtDigiPar *fPar)
 
AtMapPtr GetMap ()
 
void UseFastGain (bool val)
 
void SetNoiseSigma (double val)
 
void SetSaveCharge (bool val)
 
void SetDoConvolution (bool val)
 
AtRawEvent GenerateEvent (std::vector< SimPointPtr > &vec)
 
virtual AtRawEvent GenerateEvent (std::vector< AtSimulatedPoint * > &vec)
 
virtual std::shared_ptr< AtPulseClone () const
 

Protected Types

using AtMapPtr = std::shared_ptr< AtMap >
 
using ResponseFunctionType = std::add_pointer_t< double(double)>
 
using ResponseFunc = std::function< double(int, double)>
 Function (or callable object) to use as the response function. Parameters are padNum and time (us) More...
 
using XYZVector = ROOT::Math::XYZVector
 
using XYZPoint = ROOT::Math::XYZPoint
 
using SimPointPtr = std::unique_ptr< AtSimulatedPoint >
 

Protected Member Functions

void Reset ()
 
virtual bool AssignElectronsToPad (AtSimulatedPoint *point)
 
double GetGain (int padNum, int numElectrons)
 
void GenerateTraceFromElectrons ()
 
void FillPad (AtPad &pad, TH1F &hist)
 
void ApplyNoise (AtPad &pad)
 

Protected Attributes

AtMapPtr fMap
 AtTPC map. More...
 
int fEventID = 0
 
double fGain = 0
 EventID. More...
 
double fLowGainFactor = 0
 Micromegas gain. More...
 
double fGETGain = 0
 If pad is AtMap::kLowGain multiply gain by this factor. More...
 
double fPeakingTime = 0
 GET Gain (ADC ch/electron). More...
 
double fTBTime = 0
 Electronic peaking time in us. More...
 
int fNumTbs {512}
 Time bucket size in us. More...
 
int fTBEntrance = 0
 Number of time buckers. More...
 
int fTBPadPlane = 0
 Window location in timebuckets (from config) More...
 
ResponseFunc fResponse
 Pad plane location in TBs (calculated from DriftVelocity, TBEntrance, ZPadPlane. More...
 
bool fUseFastGain = true
 Response function of the electronics. More...
 
double fNoiseSigma = 0
 
bool fSaveCharge = true
 Sigma of random gaussian noise to apply to trace. More...
 
bool fDoConvolution {true}
 
std::vector< std::unique_ptr< TH1F > > fPadCharge
 
std::set< int > fPadsWithCharge
 
std::unique_ptr< TF1 > fGainFunc
 
double fAvgGainDeviation {}
 

Detailed Description

Definition at line 22 of file AtPulse.h.

Member Typedef Documentation

◆ AtMapPtr

using AtPulse::AtMapPtr = std::shared_ptr<AtMap>
protected

Definition at line 24 of file AtPulse.h.

◆ ResponseFunc

using AtPulse::ResponseFunc = std::function<double(int, double)>
protected

Function (or callable object) to use as the response function. Parameters are padNum and time (us)

Definition at line 27 of file AtPulse.h.

◆ ResponseFunctionType

using AtPulse::ResponseFunctionType = std::add_pointer_t<double(double)>
protected

Definition at line 25 of file AtPulse.h.

◆ SimPointPtr

using AtPulse::SimPointPtr = std::unique_ptr<AtSimulatedPoint>
protected

Definition at line 30 of file AtPulse.h.

◆ XYZPoint

using AtPulse::XYZPoint = ROOT::Math::XYZPoint
protected

Definition at line 29 of file AtPulse.h.

◆ XYZVector

using AtPulse::XYZVector = ROOT::Math::XYZVector
protected

Definition at line 28 of file AtPulse.h.

Constructor & Destructor Documentation

◆ AtPulse() [1/2]

AtPulse::AtPulse ( AtMapPtr  map,
ResponseFunc  response = nullptr 
)

Definition at line 27 of file AtPulse.cxx.

◆ AtPulse() [2/2]

AtPulse::AtPulse ( const AtPulse other)

Definition at line 34 of file AtPulse.cxx.

Member Function Documentation

◆ ApplyNoise()

void AtPulse::ApplyNoise ( AtPad pad)
protected

Definition at line 118 of file AtPulse.cxx.

◆ AssignElectronsToPad()

bool AtPulse::AssignElectronsToPad ( AtSimulatedPoint point)
protectedvirtual

Assign electons to pad and apply the gain from the umegas (including gain reduction from smartzap) Returns if we were able to add the point to a pad.

Reimplemented in AtPulseGADGET, and AtPulseLine.

Definition at line 182 of file AtPulse.cxx.

◆ Clone()

virtual std::shared_ptr<AtPulse> AtPulse::Clone ( ) const
inlinevirtual

Reimplemented in AtPulseGADGET, and AtPulseLine.

Definition at line 70 of file AtPulse.h.

◆ FillPad()

void AtPulse::FillPad ( AtPad pad,
TH1F &  hist 
)
protected

Definition at line 82 of file AtPulse.cxx.

◆ GenerateEvent() [1/2]

AtRawEvent AtPulse::GenerateEvent ( std::vector< AtSimulatedPoint * > &  vec)
virtual

Reimplemented in AtPulseGADGET.

Definition at line 62 of file AtPulse.cxx.

◆ GenerateEvent() [2/2]

AtRawEvent AtPulse::GenerateEvent ( std::vector< SimPointPtr > &  vec)

Definition at line 56 of file AtPulse.cxx.

◆ GenerateTraceFromElectrons()

void AtPulse::GenerateTraceFromElectrons ( )
protected

◆ GetGain()

double AtPulse::GetGain ( int  padNum,
int  numElectrons 
)
protected

Definition at line 205 of file AtPulse.cxx.

◆ GetMap()

AtMapPtr AtPulse::GetMap ( )
inline

Definition at line 61 of file AtPulse.h.

◆ Reset()

void AtPulse::Reset ( )
protected

Definition at line 127 of file AtPulse.cxx.

◆ SetDoConvolution()

void AtPulse::SetDoConvolution ( bool  val)
inline

Definition at line 65 of file AtPulse.h.

◆ SetNoiseSigma()

void AtPulse::SetNoiseSigma ( double  val)
inline

Definition at line 63 of file AtPulse.h.

◆ SetParameters()

void AtPulse::SetParameters ( const AtDigiPar fPar)

Definition at line 133 of file AtPulse.cxx.

◆ SetSaveCharge()

void AtPulse::SetSaveCharge ( bool  val)
inline

Definition at line 64 of file AtPulse.h.

◆ UseFastGain()

void AtPulse::UseFastGain ( bool  val)
inline

Definition at line 62 of file AtPulse.h.

Member Data Documentation

◆ fAvgGainDeviation

double AtPulse::fAvgGainDeviation {}
protected

Definition at line 54 of file AtPulse.h.

◆ fDoConvolution

bool AtPulse::fDoConvolution {true}
protected

Definition at line 48 of file AtPulse.h.

◆ fEventID

int AtPulse::fEventID = 0
protected

Definition at line 34 of file AtPulse.h.

◆ fGain

double AtPulse::fGain = 0
protected

EventID.

Definition at line 35 of file AtPulse.h.

◆ fGainFunc

std::unique_ptr<TF1> AtPulse::fGainFunc
protected

Definition at line 53 of file AtPulse.h.

◆ fGETGain

double AtPulse::fGETGain = 0
protected

If pad is AtMap::kLowGain multiply gain by this factor.

Definition at line 37 of file AtPulse.h.

◆ fLowGainFactor

double AtPulse::fLowGainFactor = 0
protected

Micromegas gain.

Definition at line 36 of file AtPulse.h.

◆ fMap

AtMapPtr AtPulse::fMap
protected

AtTPC map.

Definition at line 32 of file AtPulse.h.

◆ fNoiseSigma

double AtPulse::fNoiseSigma = 0
protected

Definition at line 46 of file AtPulse.h.

◆ fNumTbs

int AtPulse::fNumTbs {512}
protected

Time bucket size in us.

Definition at line 40 of file AtPulse.h.

◆ fPadCharge

std::vector<std::unique_ptr<TH1F> > AtPulse::fPadCharge
protected

Definition at line 50 of file AtPulse.h.

◆ fPadsWithCharge

std::set<int> AtPulse::fPadsWithCharge
protected

Definition at line 51 of file AtPulse.h.

◆ fPeakingTime

double AtPulse::fPeakingTime = 0
protected

GET Gain (ADC ch/electron).

Definition at line 38 of file AtPulse.h.

◆ fResponse

ResponseFunc AtPulse::fResponse
protected

Pad plane location in TBs (calculated from DriftVelocity, TBEntrance, ZPadPlane.

Definition at line 44 of file AtPulse.h.

◆ fSaveCharge

bool AtPulse::fSaveCharge = true
protected

Sigma of random gaussian noise to apply to trace.

Definition at line 47 of file AtPulse.h.

◆ fTBEntrance

int AtPulse::fTBEntrance = 0
protected

Number of time buckers.

Definition at line 41 of file AtPulse.h.

◆ fTBPadPlane

int AtPulse::fTBPadPlane = 0
protected

Window location in timebuckets (from config)

Definition at line 42 of file AtPulse.h.

◆ fTBTime

double AtPulse::fTBTime = 0
protected

Electronic peaking time in us.

Definition at line 39 of file AtPulse.h.

◆ fUseFastGain

bool AtPulse::fUseFastGain = true
protected

Response function of the electronics.

Definition at line 45 of file AtPulse.h.


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