Belle II Software  release-08-01-10
MaterialScanPlanar Class Reference

Specific implementaion of MaterialScan to scan parallel to a given plane. More...

#include <MaterialScan.h>

Inheritance diagram for MaterialScanPlanar:
Collaboration diagram for MaterialScanPlanar:

Public Member Functions

 MaterialScanPlanar (TFile *rootFile, const G4ThreeVector &origin, const G4ThreeVector &dirU, const G4ThreeVector &dirV, const ScanParams &params)
 Create a Planar Scan object with the given parameters. More...
 
bool createNext (G4ThreeVector &origin, G4ThreeVector &direction) override
 Get the origin and direction for the next scan particle. More...
 
int getNRays () const override
 Return the number of rays in this scan.
 
void UserSteppingAction (const G4Step *step) override
 Record the material budget for each step of the particles.
 
std::string getName () const
 Return the name of the scan.
 

Protected Member Functions

void getRay (G4ThreeVector &origin, G4ThreeVector &direction) override
 Create a ray with the current parameter values according to a planar distribution.
 
TH2D * getHistogram (const std::string &name)
 get histogram for a given name, create if needed. More...
 
void fillValue (const std::string &name, double value)
 Fill the recorded material budget into the corresponding histogram. More...
 
bool checkStep (const G4Step *step)
 check for stuck tracks by looking at the step length
 

Protected Attributes

G4ThreeVector m_origin
 Origin of the scan plane.
 
G4ThreeVector m_dirU
 u direction of the scan plane
 
G4ThreeVector m_dirV
 v direction of the scan plane
 
G4ThreeVector m_dirW
 direction perpendicluar to u and v
 
ScanParams m_params
 Parameters for the scan.
 
double m_curU
 Current value of the parametetr u.
 
double m_stepU
 Stepsize for the parameter u.
 
double m_curV
 Current value of the parametetr v.
 
double m_stepV
 Stepsize for the parameter v.
 
double m_curDepth
 Tracklength of the current Ray.
 
std::map< std::string, std::unique_ptr< TH2D > > m_regions
 Map holding pointers to all created histograms.
 
TFile * m_rootFile
 Pointer to the root file for the histograms.
 
std::string m_name
 Name of the scan, will be prefixed to all histogram names.
 
std::string m_axisLabel
 Labels for the coordinate axes.
 

Private Attributes

int m_zeroSteps {0}
 Count the number of steps with (almost) zero length.
 

Static Private Attributes

static constexpr double c_zeroTolerance = 1e-6
 maximum Step length to be considered zero
 
static constexpr int c_maxZeroStepsNudge = 10
 maximum number of consecutive zero steps before nudging the track along
 
static constexpr int c_maxZeroStepsKill = 20
 maximum number of consecutive zero steps before killing the track
 

Detailed Description

Specific implementaion of MaterialScan to scan parallel to a given plane.

Particles will be created in a grid on the given plane and will be traced perpendicluar to that plane The plane is defined by one origin and the directions of the grid coordinates u and v. The flight direction is determined by the cross product between the u and v axis.

Definition at line 202 of file MaterialScan.h.

Constructor & Destructor Documentation

◆ MaterialScanPlanar()

MaterialScanPlanar ( TFile *  rootFile,
const G4ThreeVector &  origin,
const G4ThreeVector &  dirU,
const G4ThreeVector &  dirV,
const ScanParams params 
)
inline

Create a Planar Scan object with the given parameters.

Parameters
rootFilepointer to the ROOT File containing the histograms
originOrigin of the plane to shoot rays from
dirUDirection of the u coordinate
dirVDirection of the v coordinate
paramsParameters of the scan

Definition at line 211 of file MaterialScan.h.

Member Function Documentation

◆ createNext()

bool createNext ( G4ThreeVector &  origin,
G4ThreeVector &  direction 
)
overridevirtualinherited

Get the origin and direction for the next scan particle.

Parameters
[out]originOrigin of the next scan particle
[out]directionDirection of the next scan particle
Returns
false if the scan is finished

Implements MaterialScanBase.

Definition at line 97 of file MaterialScan.cc.

◆ fillValue()

void fillValue ( const std::string &  name,
double  value 
)
protectedinherited

Fill the recorded material budget into the corresponding histogram.

Parameters
nameName of the histogram
valueValue to store

Definition at line 138 of file MaterialScan.cc.

◆ getHistogram()

TH2D * getHistogram ( const std::string &  name)
protectedinherited

get histogram for a given name, create if needed.

Parameters
nameName of the histogram

Definition at line 125 of file MaterialScan.cc.


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