R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandNeutron.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 R3BNEULANDNEUTRON_H
15#define R3BNEULANDNEUTRON_H
16
17#include "R3BNeulandCluster.h"
18#include "R3BNeulandHit.h"
19#include "TObject.h"
20#include <Math/Vector3Dfwd.h>
21#include <Rtypes.h>
22#include <RtypesCore.h>
23#include <iostream>
24
25// NOLINTBEGIN(misc-include-cleaner)
26#include <Math/Vector3D.h>
27// NOLINTEND(misc-include-cleaner)
28
29class R3BNeulandNeutron : public TObject
30{
31 public:
32 R3BNeulandNeutron() = default;
33 R3BNeulandNeutron(int paddle, double time, ROOT::Math::XYZVector pos, ROOT::Math::XYZVector pix);
34 explicit R3BNeulandNeutron(const R3BNeulandHit&);
35 explicit R3BNeulandNeutron(const R3BNeulandCluster&);
36
37 [[nodiscard]] auto GetPaddle() const -> int { return fPaddle; }
38 [[nodiscard]] auto GetT() const -> double { return fT; }
39 [[nodiscard]] auto GetPosition() const -> ROOT::Math::XYZVector { return fPosition; }
40 [[nodiscard]] auto GetPixel() const -> ROOT::Math::XYZVector { return fPixel; }
41
42 [[nodiscard]] auto GetEtot() const -> double;
43 [[nodiscard]] auto GetEkin() const -> double;
44 [[nodiscard]] auto GetGamma() const -> double;
45 [[nodiscard]] auto GetP() const -> ROOT::Math::XYZVector;
46
47 void Print(const Option_t* /*option*/) const override;
48
49 private:
50 int fPaddle{};
51 double fT{};
52 ROOT::Math::XYZVector fPosition;
53 ROOT::Math::XYZVector fPixel;
54
55 ClassDefOverride(R3BNeulandNeutron, 1)
56};
57
58auto operator<<(std::ostream&, const R3BNeulandNeutron&) -> std::ostream&; // Support easy printing
59
60#endif // R3BNEULANDNEUTRON_H
auto operator<<(std::ostream &, const R3BNeulandNeutron &) -> std::ostream &
auto GetPaddle() const -> int
ROOT::Math::XYZVector fPixel
void Print(const Option_t *) const override
R3BNeulandNeutron()=default
ROOT::Math::XYZVector fPosition
auto GetPixel() const -> ROOT::Math::XYZVector
auto GetPosition() const -> ROOT::Math::XYZVector
R3BNeulandNeutron(int paddle, double time, ROOT::Math::XYZVector pos, ROOT::Math::XYZVector pix)
auto GetEkin() const -> double
auto GetEtot() const -> double
auto GetT() const -> double
auto GetP() const -> ROOT::Math::XYZVector
auto GetGamma() const -> double