R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeuland Class Reference

NeuLAND detector simulation class. More...

#include <R3BNeuland.h>

Public Member Functions

 R3BNeuland ()
 Default constructor.
 
 R3BNeuland (const TString &geoFile, const TGeoTranslation &trans, const TGeoRotation &rot=TGeoRotation())
 Standard constructor.
 
 R3BNeuland (const TString &geoFile, const TGeoCombiTrans &combi=TGeoCombiTrans())
 Standard constructor.
 
 R3BNeuland (int nDP, const TGeoTranslation &trans, const TGeoRotation &rot=TGeoRotation())
 Standard constructor.
 
 R3BNeuland (int nDP, const TGeoCombiTrans &combi=TGeoCombiTrans())
 Standard constructor.
 
void EnableAutoGeoBuild (bool is_enabled=true)
 Enable the automatic geometry build for NeuLAND.
 
void SetLocationDirection (const TGeoCombiTrans &pos)
 Set the translation and rotation of the NeuLAND detector.
 

Private Member Functions

auto ProcessHits (FairVolume *=nullptr) -> bool override
 
void EndOfEvent () override
 
void FinishEvent () override
 
void Print (Option_t *="") const override
 
void Reset () override
 
auto CheckIfSensitive (std::string name) -> bool override
 
auto GetCollection (int iColl) const -> TClonesArray *override
 
void Register () override
 
void reset_values ()
 
void write_parameter_file ()
 
void ConstructGeometry () override
 
void Initialize () override
 
void create_geo ()
 
void create_geo_from_root_file ()
 
 ClassDefOverride (R3BNeuland, 4)
 

Private Attributes

bool is_geo_auto_built = false
 Flag to check if geo-build is needed.
 
bool is_last_hit_done_ = false
 Flag to check if last hit finished.
 
int num_of_planes_ = R3B::Neuland::MaxNumberOfPlanes
 The number of planes.
 
int track_id_ = 0
 A buffer for the track IDs.
 
int paddle_id_ = 0
 A buffer for the paddle ids.
 
int particle_id_ = 0
 A buffer for the particle IDs.
 
int parent_particle_id_ = 0
 A buffer for the parent particle IDs.
 
double time_ = 0.
 A buffer for time values.
 
double length_ = 0.
 A buffer for track lengths.
 
double energy_loss_ = 0.
 A buffer for the energy losses.
 
double light_yield_ = 0.
 A buffer for the light yields.
 
TLorentzVector pos_in_
 A buffer for the position where the track goes into the volume.
 
TLorentzVector pos_out_
 A buffer for the position where the track goes out of the volume.
 
TLorentzVector mom_in_
 A buffer for the momentum when the track goes into the volume.
 
TLorentzVector mom_out_
 A buffer for the position when the track goes out of the volume.
 
std::unique_ptr< TClonesArray > tca_points_buffer_ = std::make_unique<TClonesArray>(R3BNeulandPoint::Class())
 The TCA data buffer used to be returned by virtual method GetCollection(int iColl).
 
R3B::OutputVectorConnector< R3BNeulandPointneuland_points_ { "NeulandPoints" }
 Output data written to the ROOT file.
 
R3BNeulandGeoParneuland_geo_par_ = nullptr
 Output parameter containing the geometry information.
 
R3B::Neuland::Geometry::Creator geo_creator_
 Creating NeuLAND geometry if EnableAutoGeoBuild() is enabled.
 
TGeoCombiTrans rot_trans_
 Rotation and tranlation of NeuLAND detector.
 
std::string geo_file_
 Geometry file name. The file must be present if EnableAutoGeoBuild() is disabled.
 
std::map< int, int > track_pid_map_
 A map with the track ID as the key and the particle ID as the value.
 

Detailed Description

Author
Jan Mayer, Yanzhao Wang
Since
12.01.2016

For each simulated event, a vector data with name "NeulandPoints" is filled:

  • NeulandPoints (R3BNeulandPoint), each representing energy deposition and light yield of a track in a paddle.

Suitable geometry files require proper naming of the active volume (see CheckIfSensitive()) and copy numbers.

Definition at line 48 of file R3BNeuland.h.

Constructor & Destructor Documentation

◆ R3BNeuland() [1/5]

R3BNeuland::R3BNeuland ( )

Definition at line 70 of file R3BNeuland.cxx.

◆ R3BNeuland() [2/5]

R3BNeuland::R3BNeuland ( const TString & geoFile,
const TGeoTranslation & trans,
const TGeoRotation & rot = TGeoRotation() )
Parameters
geoFilename of the ROOT geometry file
transposition
rotrotation

Definition at line 75 of file R3BNeuland.cxx.

◆ R3BNeuland() [3/5]

R3BNeuland::R3BNeuland ( const TString & geoFile,
const TGeoCombiTrans & combi = TGeoCombiTrans() )
explicit
Parameters
geoFilename of the ROOT geometry file
combiposition + rotation

Definition at line 80 of file R3BNeuland.cxx.

◆ R3BNeuland() [4/5]

R3BNeuland::R3BNeuland ( int nDP,
const TGeoTranslation & trans,
const TGeoRotation & rot = TGeoRotation() )
Parameters
nDPnumber of double planes
transposition
rotrotation

Definition at line 87 of file R3BNeuland.cxx.

◆ R3BNeuland() [5/5]

R3BNeuland::R3BNeuland ( int nDP,
const TGeoCombiTrans & combi = TGeoCombiTrans() )
explicit
Parameters
nDPnumber of double planes
combiposition + rotation

Definition at line 92 of file R3BNeuland.cxx.

Member Function Documentation

◆ CheckIfSensitive()

auto R3BNeuland::CheckIfSensitive ( std::string name) -> bool
overrideprivate

Definition at line 189 of file R3BNeuland.cxx.

◆ ClassDefOverride()

R3BNeuland::ClassDefOverride ( R3BNeuland ,
4  )
private

◆ ConstructGeometry()

void R3BNeuland::ConstructGeometry ( )
overrideprivate

Definition at line 274 of file R3BNeuland.cxx.

◆ create_geo()

void R3BNeuland::create_geo ( )
private

Definition at line 286 of file R3BNeuland.cxx.

◆ create_geo_from_root_file()

void R3BNeuland::create_geo_from_root_file ( )
private

Definition at line 309 of file R3BNeuland.cxx.

◆ EnableAutoGeoBuild()

void R3BNeuland::EnableAutoGeoBuild ( bool is_enabled = true)
inline

Automatically build the NeuLAND geometry without a geometry file. The geometry build is done in the class R3B::Neuland::Geometry::Creator. If this is disabled, an geometry file corresponding to the number of double plane must be present.

Parameters
is_enabledWhether the geometry build should be enabled or not.

Definition at line 84 of file R3BNeuland.h.

◆ EndOfEvent()

void R3BNeuland::EndOfEvent ( )
overrideprivate

Definition at line 191 of file R3BNeuland.cxx.

◆ FinishEvent()

void R3BNeuland::FinishEvent ( )
overrideprivate

Definition at line 200 of file R3BNeuland.cxx.

◆ GetCollection()

auto R3BNeuland::GetCollection ( int iColl) const -> TClonesArray*
nodiscardoverrideprivate

Definition at line 263 of file R3BNeuland.cxx.

◆ Initialize()

void R3BNeuland::Initialize ( )
overrideprivate

Definition at line 98 of file R3BNeuland.cxx.

◆ Print()

void R3BNeuland::Print ( Option_t * = "") const
overrideprivate

Definition at line 210 of file R3BNeuland.cxx.

◆ ProcessHits()

auto R3BNeuland::ProcessHits ( FairVolume * = nullptr) -> bool
overrideprivate

Definition at line 108 of file R3BNeuland.cxx.

◆ Register()

void R3BNeuland::Register ( )
overrideprivate

Definition at line 272 of file R3BNeuland.cxx.

◆ Reset()

void R3BNeuland::Reset ( )
overrideprivate

Definition at line 215 of file R3BNeuland.cxx.

◆ reset_values()

void R3BNeuland::reset_values ( )
private

Definition at line 223 of file R3BNeuland.cxx.

◆ SetLocationDirection()

void R3BNeuland::SetLocationDirection ( const TGeoCombiTrans & pos)
inline

Set the translation and rotation of the NeuLAND detector using parameter with the type TGeoCombiTrans. This will override the value specified by the constructors.

Parameters
posInput tranlation and rotation matrix.
See also
TGeoCombiTrans

Definition at line 94 of file R3BNeuland.h.

◆ write_parameter_file()

void R3BNeuland::write_parameter_file ( )
private

Definition at line 238 of file R3BNeuland.cxx.

Member Data Documentation

◆ energy_loss_

double R3BNeuland::energy_loss_ = 0.
private

Definition at line 108 of file R3BNeuland.h.

◆ geo_creator_

R3B::Neuland::Geometry::Creator R3BNeuland::geo_creator_
private

Definition at line 122 of file R3BNeuland.h.

◆ geo_file_

std::string R3BNeuland::geo_file_
private

Definition at line 126 of file R3BNeuland.h.

◆ is_geo_auto_built

bool R3BNeuland::is_geo_auto_built = false
private

Definition at line 97 of file R3BNeuland.h.

◆ is_last_hit_done_

bool R3BNeuland::is_last_hit_done_ = false
private

Definition at line 98 of file R3BNeuland.h.

◆ length_

double R3BNeuland::length_ = 0.
private

Definition at line 107 of file R3BNeuland.h.

◆ light_yield_

double R3BNeuland::light_yield_ = 0.
private

Definition at line 109 of file R3BNeuland.h.

◆ mom_in_

TLorentzVector R3BNeuland::mom_in_
private

Definition at line 112 of file R3BNeuland.h.

◆ mom_out_

TLorentzVector R3BNeuland::mom_out_
private

Definition at line 113 of file R3BNeuland.h.

◆ neuland_geo_par_

R3BNeulandGeoPar* R3BNeuland::neuland_geo_par_ = nullptr
private

Definition at line 120 of file R3BNeuland.h.

◆ neuland_points_

R3B::OutputVectorConnector<R3BNeulandPoint> R3BNeuland::neuland_points_ { "NeulandPoints" }
private

Definition at line 118 of file R3BNeuland.h.

◆ num_of_planes_

int R3BNeuland::num_of_planes_ = R3B::Neuland::MaxNumberOfPlanes
private

Definition at line 99 of file R3BNeuland.h.

◆ paddle_id_

int R3BNeuland::paddle_id_ = 0
private

Definition at line 103 of file R3BNeuland.h.

◆ parent_particle_id_

int R3BNeuland::parent_particle_id_ = 0
private

Definition at line 105 of file R3BNeuland.h.

◆ particle_id_

int R3BNeuland::particle_id_ = 0
private

Definition at line 104 of file R3BNeuland.h.

◆ pos_in_

TLorentzVector R3BNeuland::pos_in_
private

Definition at line 110 of file R3BNeuland.h.

◆ pos_out_

TLorentzVector R3BNeuland::pos_out_
private

Definition at line 111 of file R3BNeuland.h.

◆ rot_trans_

TGeoCombiTrans R3BNeuland::rot_trans_
private

Definition at line 124 of file R3BNeuland.h.

◆ tca_points_buffer_

std::unique_ptr<TClonesArray> R3BNeuland::tca_points_buffer_ = std::make_unique<TClonesArray>(R3BNeulandPoint::Class())
private

Definition at line 116 of file R3BNeuland.h.

◆ time_

double R3BNeuland::time_ = 0.
private

Definition at line 106 of file R3BNeuland.h.

◆ track_id_

int R3BNeuland::track_id_ = 0
private

Definition at line 102 of file R3BNeuland.h.

◆ track_pid_map_

std::map<int, int> R3BNeuland::track_pid_map_
private

Used to find the parent particle ID of the current track,

Definition at line 129 of file R3BNeuland.h.


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