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

#include <AtPulseLine.h>

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

Public Member Functions

 AtPulseLine (AtMapPtr map, ResponseFunc response=nullptr)
 xyIntegrationMap[padNum] = % of e- in event here More...
 
 AtPulseLine (const AtPulseLine &other)=default
 
void SetNumIntegrationPoints (uint numPoints)
 
void SetNumSigmaToIntegrateZ (ushort zScore)
 
uint GetNumIntegrationPoints ()
 
ushort SetNumSigmaToIntegrateZ ()
 
virtual std::shared_ptr< AtPulseClone () const override
 
- Public Member Functions inherited from AtPulse
 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)
 

Protected Member Functions

void generateIntegrationMap (AtSimulatedLine &line)
 
int throwRandomAndGetPadAfterDiffusion (const ROOT::Math::XYZVector &loc, double diffusionSigma)
 
int integrateTimebuckets (std::vector< double > &zIntegral, AtSimulatedLine *line)
 
virtual bool AssignElectronsToPad (AtSimulatedPoint *line) override
 
- Protected Member Functions inherited from AtPulse
void Reset ()
 
double GetGain (int padNum, int numElectrons)
 
void GenerateTraceFromElectrons ()
 
void FillPad (AtPad &pad, TH1F &hist)
 
void ApplyNoise (AtPad &pad)
 

Additional Inherited Members

- Protected Types inherited from AtPulse
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 Attributes inherited from AtPulse
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 16 of file AtPulseLine.h.

Constructor & Destructor Documentation

◆ AtPulseLine() [1/2]

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

xyIntegrationMap[padNum] = % of e- in event here

Definition at line 29 of file AtPulseLine.cxx.

◆ AtPulseLine() [2/2]

AtPulseLine::AtPulseLine ( const AtPulseLine other)
default

Member Function Documentation

◆ AssignElectronsToPad()

bool AtPulseLine::AssignElectronsToPad ( AtSimulatedPoint point)
overrideprotectedvirtual

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 from AtPulse.

Definition at line 66 of file AtPulseLine.cxx.

◆ Clone()

virtual std::shared_ptr<AtPulse> AtPulseLine::Clone ( ) const
inlineoverridevirtual

Reimplemented from AtPulse.

Definition at line 32 of file AtPulseLine.h.

◆ generateIntegrationMap()

void AtPulseLine::generateIntegrationMap ( AtSimulatedLine line)
protected

Definition at line 44 of file AtPulseLine.cxx.

◆ GetNumIntegrationPoints()

uint AtPulseLine::GetNumIntegrationPoints ( )
inline

Definition at line 30 of file AtPulseLine.h.

◆ integrateTimebuckets()

int AtPulseLine::integrateTimebuckets ( std::vector< double > &  zIntegral,
AtSimulatedLine line 
)
protected

Definition at line 96 of file AtPulseLine.cxx.

◆ SetNumIntegrationPoints()

void AtPulseLine::SetNumIntegrationPoints ( uint  numPoints)
inline

Definition at line 28 of file AtPulseLine.h.

◆ SetNumSigmaToIntegrateZ() [1/2]

ushort AtPulseLine::SetNumSigmaToIntegrateZ ( )
inline

Definition at line 31 of file AtPulseLine.h.

◆ SetNumSigmaToIntegrateZ() [2/2]

void AtPulseLine::SetNumSigmaToIntegrateZ ( ushort  zScore)
inline

Definition at line 29 of file AtPulseLine.h.

◆ throwRandomAndGetPadAfterDiffusion()

int AtPulseLine::throwRandomAndGetPadAfterDiffusion ( const ROOT::Math::XYZVector loc,
double  diffusionSigma 
)
protected

Definition at line 34 of file AtPulseLine.cxx.


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