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 "TObject.h"
19#include "TVector3.h"
20#include <iostream>
21
22class R3BNeulandPoint : public FairMCPoint
23{
24
25 public:
27 : fLightYield{ 0 }
28 , fParticleId{ 0 }
29 , fParentParticleId{ 0 }
30 {
31 }
32 // NOLINTBEGIN
33 R3BNeulandPoint(const Int_t trackID,
34 const Int_t detID,
35 const TVector3& pos,
36 const TVector3& mom,
37 const Double_t tof,
38 const Double_t length,
39 const Double_t eLoss,
40 const UInt_t EventId,
41 const Double_t lightYield,
42 const int particle_id,
43 const int parent_particle_id) // NOLINTEND
44 : FairMCPoint{ trackID, detID, pos, mom, tof, length, eLoss, EventId }
45 , fLightYield{ lightYield }
46 , fParticleId{ particle_id }
47 , fParentParticleId{ parent_particle_id }
48 {
49 }
50
51 R3BNeulandPoint(const FairMCPoint& point,
52 const Double_t lightYield,
53 const int particle_id,
54 const int parent_particle_id)
55 : FairMCPoint{ point }
56 , fLightYield{ lightYield }
57 , fParticleId{ particle_id }
58 , fParentParticleId{ parent_particle_id }
59 {
60 }
61
62 [[nodiscard]] auto GetMomentum() const -> TVector3;
63 [[nodiscard]] auto GetPosition() const -> TVector3;
64 [[nodiscard]] auto GetPaddle() const -> int { return GetDetectorID(); }
65 [[nodiscard]] auto GetLightYield() const -> double { return fLightYield; }
66 [[nodiscard]] auto GetPID() const -> int { return fParticleId; }
67
68 // setters:
69 void SetLightYield(double light_yield) { fLightYield = light_yield; }
70 void SetParticleId(int particle_id) { fParticleId = particle_id; }
71 void SetParentParticleId(int particle_id) { fParentParticleId = particle_id; }
72
73 void Print(const Option_t* /*opt*/) const override;
74
76
77 private:
78 double fLightYield;
79 int fParticleId;
80 int fParentParticleId;
81};
82
83auto operator<<(std::ostream&, const R3BNeulandPoint&) -> std::ostream&; // Support easy printing
84
85#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)