CbmRoot
Loading...
Searching...
No Matches
CbmMuchPoint.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese, Denis Bertini [committer], Mikhail Ryzhinskiy */
4
16#ifndef CBMMUCHPOINT_H
17#define CBMMUCHPOINT_H
18
19#include <FairMCPoint.h> // for FairMCPoint
20
21#include <Rtypes.h> // for ClassDef
22#include <RtypesCore.h> // for Double32_t
23#include <TVector3.h> // for TVector3
24
25#include <cstdint>
26
27class CbmMuchPoint : public FairMCPoint {
28
29public:
32
33
46 CbmMuchPoint(int32_t trackID, int32_t detID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut,
47 double tof, double length, double eLoss, int32_t eventId = 0);
48
49
56 CbmMuchPoint(const CbmMuchPoint& point, int32_t eventId = -1, double eventTime = 0., double epochTime = 0.);
57
58
60 virtual ~CbmMuchPoint();
61
62
64 int32_t GetDetectorId() const { return fDetectorID; }
65 double GetXIn() const { return fX; }
66 double GetYIn() const { return fY; }
67 double GetZIn() const { return fZ; }
68 double GetXOut() const { return fX_out; }
69 double GetYOut() const { return fY_out; }
70 double GetZOut() const { return fZ_out; }
71 double GetPxOut() const { return fPx_out; }
72 double GetPyOut() const { return fPy_out; }
73 double GetPzOut() const { return fPz_out; }
74 void PositionIn(TVector3& pos) const { pos.SetXYZ(fX, fY, fZ); }
75 void PositionOut(TVector3& pos) const { pos.SetXYZ(fX_out, fY_out, fZ_out); }
76 void MomentumOut(TVector3& mom) const { mom.SetXYZ(fPx_out, fPy_out, fPz_out); }
77
79 double GetX(double z) const;
80 double GetY(double z) const;
81
83 bool IsUsable() const;
84
86 void SetPositionOut(TVector3 pos);
87 void SetMomentumOut(TVector3 mom);
88
90 virtual void Print(const Option_t* opt) const;
91
92protected:
93 Double32_t fX_out, fY_out, fZ_out;
94 Double32_t fPx_out, fPy_out, fPz_out;
95
96 ClassDef(CbmMuchPoint, 1)
97};
98
99
101{
102 fX_out = pos.X();
103 fY_out = pos.Y();
104 fZ_out = pos.Z();
105}
106
107
108inline void CbmMuchPoint::SetMomentumOut(TVector3 mom)
109{
110 fPx_out = mom.Px();
111 fPy_out = mom.Py();
112 fPz_out = mom.Pz();
113}
114#endif
double GetX(double z) const
Double32_t fX_out
Double32_t fPx_out
Double32_t fZ_out
double GetYOut() const
Double32_t fY_out
void MomentumOut(TVector3 &mom) const
double GetZOut() const
bool IsUsable() const
double GetYIn() const
void PositionIn(TVector3 &pos) const
void SetPositionOut(TVector3 pos)
double GetPxOut() const
void SetMomentumOut(TVector3 mom)
double GetPyOut() const
virtual ~CbmMuchPoint()
int32_t GetDetectorId() const
Double32_t fPz_out
double GetZIn() const
void PositionOut(TVector3 &pos) const
double GetY(double z) const
virtual void Print(const Option_t *opt) const
double GetPzOut() const
double GetXOut() const
Double32_t fPy_out
double GetXIn() const