PandaRoot
PndDiscParticleMCPoint.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //-------------------------------------------------------------------------
14 // Author: Oliver Merle (Oliver.Merle@exp2.physik.uni-giessen.de)
15 // Changes: Mustafa Schmidt (Mustafa.A.Schmidt@physik.uni-giessen.de)
16 // Date: 30.11.2015
17 // Description: Information of charged particle tracks
18 //-------------------------------------------------------------------------
19 
20 #ifndef PNDDISCPARTICLEMCPOINT_HH
21 #define PNDDISCPARTICLEMCPOINT_HH
22 
23 #include "PndMCPoint.h"
24 
26  public:
28  // trackID, detID, posin, momin, tof, length, eLoss
29  PndDiscParticleMCPoint(Int_t track_id, // base
30  // Int_t event_id, // in FairMCEventHeader
31  Int_t det_id, // base
32  Int_t volume_id, // -- use some kind of volume identifier here (radiator, lightguide etc) (PndGeoHandling short id??)
33  TVector3 pos_in, // base
34  TVector3 mom_in, // base
35  TVector3 pos_out, // base
36  TVector3 mom_out, // base
37  Double_t total_tof, // base
38  Double_t total_length, // base
39  Double_t energy_loss, Double_t charge, Double_t mass, Int_t pdgcode,
40  Bool_t pos_in_inside, // whether the particle was entering the volume at pos_in
41  Bool_t is_primary);
42 
43  virtual ~PndDiscParticleMCPoint();
44 
45  virtual void Print(const Option_t *opt = nullptr) const;
46 
47  void SetVolumeID(Int_t val) { fVolume_id = val; }
48  void SetCharge(Double_t val) { fCharge = val; }
49  void SetMass(Double_t val) { fMass = val; }
50  void SetPdgCode(Int_t val) { fPdgCode = val; }
51  void SetPosInInside(Bool_t val) { fPos_in_inside = val; }
52  void SetIsPrimary(Bool_t val) { fIs_primary = val; }
53  void SetMyEnergyLoss(Double_t val) { fMy_energy_loss = val; }
54 
55  Int_t GetVolumeID() const { return fVolume_id; }
56  Double_t GetCharge() const { return fCharge; }
57  Double_t GetMass() const { return fMass; }
58  Int_t GetPdgCode() const { return fPdgCode; }
59  Bool_t GetPosInInside() const { return fPos_in_inside; }
60  Bool_t GetIsPrimary() const { return fIs_primary; }
61  Double_t GetMyEnergyLoss() const { return fMy_energy_loss; }
62 
63  protected:
64  Int_t fVolume_id = 0;
65  Double_t fCharge = 0.; // todo: this doubles the information of the particel and the MC track. Should be removed
66  Double_t fMass = 0.;
67  Int_t fPdgCode = 0;
68  Bool_t fPos_in_inside = false;
69  Bool_t fIs_primary = false;
70 
71  Double_t fMy_energy_loss = 0.;
72 
74 };
75 
76 #endif // PNDDISCPARTICLEMCPOINT_HH
void SetMyEnergyLoss(Double_t val)
void SetCharge(Double_t val)
Double_t GetMyEnergyLoss() const
void SetVolumeID(Int_t val)
FairMCPoint forces the implementation.
ClassDef(PndMCPoint, 1)
virtual void Print(const Option_t *opt=nullptr) const
virtual ~PndDiscParticleMCPoint()