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

Sample AtHits according to charge for Y shaped tracks. More...

#include <AtY.h>

Inheritance diagram for RandomSample::AtY:
Inheritance graph
[legend]
Collaboration diagram for RandomSample::AtY:
Collaboration graph
[legend]

Public Member Functions

virtual std::vector< AtHitSampleHits (int N) override
 Sample hits (AtHit) from fHits. More...
 
virtual void SetHitsToSample (const std::vector< const AtHit * > &hits) override
 
virtual std::vector< double > PDF (const AtHit &hit) override
 
- Public Member Functions inherited from RandomSample::AtIndependentSample
virtual ~AtIndependentSample ()=default
 
- Public Member Functions inherited from RandomSample::AtSample
virtual ~AtSample ()=default
 
std::vector< ROOT::Math::XYZPointSamplePoints (int N)
 Sample spacial locations (XYZPoints) from fHits. More...
 
void SetHitsToSample (const std::vector< HitPtr > &hits)
 
void SetHitsToSample (const std::vector< AtHit > &hits)
 
void SetSampleWithReplacement (bool val)
 

Protected Attributes

std::vector< int > fNotBeam
 
std::vector< int > fBeam
 
double fBeamRadius {40}
 
- Protected Attributes inherited from RandomSample::AtSample
const std::vector< const AtHit * > * fHits
 
std::vector< double > fCDF
 
bool fWithReplacement {false}
 

Additional Inherited Members

- Protected Types inherited from RandomSample::AtSample
using HitPtr = std::unique_ptr< AtHit >
 
- Protected Member Functions inherited from RandomSample::AtSample
void FillCDF ()
 
std::vector< int > sampleIndicesFromCDF (int N, std::vector< int > vetoed={})
 
int getIndexFromCDF (double r, double rmCFD, std::vector< int > vetoed)
 Get the index i where CDF[i] >= r and CDF[i-1] < r. More...
 
double getPDFfromCDF (int index)
 
- Static Protected Member Functions inherited from RandomSample::AtSample
template<typename T >
static bool isInVector (T val, std::vector< T > vec)
 

Detailed Description

Sample AtHits according to charge for Y shaped tracks.

Two points sampled from the beam region and two outside the beam region. Points outside the beam region have to be closer to the pad plane than the points sampled in the beam region

Definition at line 19 of file AtY.h.

Member Function Documentation

◆ PDF()

virtual std::vector<double> RandomSample::AtY::PDF ( const AtHit hit)
inlineoverridevirtual

Computes the unnormalized marginal PDFs at the hit.

For example, a charge-weighted and spacial gaussian would looke like return {charge, gaussian_pdf(distance, sigma)};

Returns
vector where each element is a different maginal pdf

Implements RandomSample::AtIndependentSample.

Definition at line 29 of file AtY.h.

◆ SampleHits()

std::vector< AtHit > AtY::SampleHits ( int  N)
overridevirtual

Sample hits (AtHit) from fHits.

Assumes fCDF is already setup and we are just using it.

Reimplemented from RandomSample::AtSample.

Definition at line 13 of file AtY.cxx.

◆ SetHitsToSample()

void AtY::SetHitsToSample ( const std::vector< const AtHit * > &  hits)
overridevirtual

Reimplemented from RandomSample::AtIndependentSample.

Definition at line 60 of file AtY.cxx.

Member Data Documentation

◆ fBeam

std::vector<int> RandomSample::AtY::fBeam
protected

Definition at line 22 of file AtY.h.

◆ fBeamRadius

double RandomSample::AtY::fBeamRadius {40}
protected

Definition at line 24 of file AtY.h.

◆ fNotBeam

std::vector<int> RandomSample::AtY::fNotBeam
protected

Definition at line 21 of file AtY.h.


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