R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandPoint.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2019-2025 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#ifndef R3BNEULANDPOINT_H
15#define R3BNEULANDPOINT_H
16
17#include "FairMCPoint.h"
18#include "TVector3.h"
19#include <Rtypes.h>
20#include <RtypesCore.h>
21#include <iostream>
22
23class R3BNeulandPoint : public FairMCPoint
24{
25
26 public:
28 : fLightYield{ 0 }
29 , fParticleId{ 0 }
31 {
32 }
33 // NOLINTBEGIN
34 R3BNeulandPoint(const Int_t trackID,
35 const Int_t detID,
36 const TVector3& pos,
37 const TVector3& mom,
38 const Double_t tof,
39 const Double_t length,
40 const Double_t eLoss,
41 const UInt_t EventId,
42 const Double_t lightYield,
43 const int particle_id,
44 const int parent_particle_id) // NOLINTEND
45 : FairMCPoint{ trackID, detID, pos, mom, tof, length, eLoss, EventId }
46 , fLightYield{ lightYield }
47 , fParticleId{ particle_id }
48 , fParentParticleId{ parent_particle_id }
49 {
50 }
51
52 R3BNeulandPoint(const FairMCPoint& point,
53 const Double_t lightYield,
54 const int particle_id,
55 const int parent_particle_id)
56 : FairMCPoint{ point }
57 , fLightYield{ lightYield }
58 , fParticleId{ particle_id }
59 , fParentParticleId{ parent_particle_id }
60 {
61 }
62
63 [[nodiscard]] auto GetMomentum() const -> TVector3;
64 [[nodiscard]] auto GetPosition() const -> TVector3;
65 [[nodiscard]] auto GetPaddle() const -> int { return GetDetectorID(); }
66 [[nodiscard]] auto GetLightYield() const -> double { return fLightYield; }
67 [[nodiscard]] auto GetPID() const -> int { return fParticleId; }
68
69 // setters:
70 void SetLightYield(double light_yield) { fLightYield = light_yield; }
71 void SetParticleId(int particle_id) { fParticleId = particle_id; }
72 void SetParentParticleId(int particle_id) { fParentParticleId = particle_id; }
73
74 void Print(const Option_t* /*opt*/) const override;
75
77
78 private:
82};
83
84auto operator<<(std::ostream&, const R3BNeulandPoint&) -> std::ostream&; // Support easy printing
85
86#endif // R3BNEULANDPOINT_H
auto operator<<(std::ostream &, const R3BNeulandPoint &) -> std::ostream &
auto GetPID() const -> int
void SetParticleId(int particle_id)
void Print(const Option_t *) const override
ClassDefOverride(R3BNeulandPoint, 2)
auto GetPaddle() const -> int
void SetParentParticleId(int particle_id)
auto GetLightYield() const -> double
void SetLightYield(double light_yield)
auto GetPosition() const -> TVector3
auto GetMomentum() const -> TVector3
R3BNeulandPoint(const FairMCPoint &point, const Double_t lightYield, const int particle_id, const int parent_particle_id)
R3BNeulandPoint(const Int_t trackID, const Int_t detID, const TVector3 &pos, const TVector3 &mom, const Double_t tof, const Double_t length, const Double_t eLoss, const UInt_t EventId, const Double_t lightYield, const int particle_id, const int parent_particle_id)