19#include "TLorentzVector.h"
20#include <FairDetector.h>
25#include <RtypesCore.h>
26#include <TClonesArray.h>
27#include <TGeoMatrix.h>
58 R3BNeuland(
const TString& geoFile,
const TGeoTranslation& trans,
const TGeoRotation& rot = TGeoRotation());
63 explicit R3BNeuland(
const TString& geoFile,
const TGeoCombiTrans& combi = TGeoCombiTrans());
69 R3BNeuland(
int nDP,
const TGeoTranslation& trans,
const TGeoRotation& rot = TGeoRotation());
74 explicit R3BNeuland(
int nDP,
const TGeoCombiTrans& combi = TGeoCombiTrans());
116 std::unique_ptr<TClonesArray>
tca_points_buffer_ = std::make_unique<TClonesArray>(R3BNeulandPoint::Class());
133 auto ProcessHits(FairVolume* =
nullptr) ->
bool override;
139 void Print(Option_t* =
"")
const override;
141 void Reset()
override;
145 [[nodiscard]]
auto GetCollection(
int iColl)
const -> TClonesArray*
override;
NeuLAND geometry parameter storage.
bool is_last_hit_done_
Flag to check if last hit finished.
auto CheckIfSensitive(std::string name) -> bool override
R3B::OutputVectorConnector< R3BNeulandPoint > neuland_points_
Output data written to the ROOT file.
int track_id_
A buffer for the track IDs.
TGeoCombiTrans rot_trans_
Rotation and tranlation of NeuLAND detector.
TLorentzVector pos_out_
A buffer for the position where the track goes out of the volume.
double energy_loss_
A buffer for the energy losses.
auto ProcessHits(FairVolume *=nullptr) -> bool override
void EnableAutoGeoBuild(bool is_enabled=true)
Enable the automatic geometry build for NeuLAND.
ClassDefOverride(R3BNeuland, 4)
int paddle_id_
A buffer for the paddle ids.
std::string geo_file_
Geometry file name. The file must be present if EnableAutoGeoBuild() is disabled.
void SetLocationDirection(const TGeoCombiTrans &pos)
Set the translation and rotation of the NeuLAND detector.
double time_
A buffer for time values.
TLorentzVector mom_out_
A buffer for the position when the track goes out of the volume.
void FinishEvent() override
TLorentzVector pos_in_
A buffer for the position where the track goes into the volume.
void EndOfEvent() override
bool is_geo_auto_built
Flag to check if geo-build is needed.
R3B::Neuland::Geometry::Creator geo_creator_
Creating NeuLAND geometry if EnableAutoGeoBuild() is enabled.
void write_parameter_file()
void create_geo_from_root_file()
int particle_id_
A buffer for the particle IDs.
R3BNeulandGeoPar * neuland_geo_par_
Output parameter containing the geometry information.
int num_of_planes_
The number of planes.
R3BNeuland()
Default constructor.
int parent_particle_id_
A buffer for the parent particle IDs.
std::map< int, int > track_pid_map_
A map with the track ID as the key and the particle ID as the value.
void ConstructGeometry() override
auto GetCollection(int iColl) const -> TClonesArray *override
void Print(Option_t *="") const override
double length_
A buffer for track lengths.
double light_yield_
A buffer for the light yields.
void Initialize() override
TLorentzVector mom_in_
A buffer for the momentum when the track goes into the volume.
std::unique_ptr< TClonesArray > tca_points_buffer_
The TCA data buffer used to be returned by virtual method GetCollection(int iColl).
constexpr auto MaxNumberOfPlanes
OutputConnector< std::vector< ElementType > > OutputVectorConnector