MpdFemtoHiddenInfo.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * \class MpdFemtoHiddenInfo
  3. * \brief A pure virtual base class for the hidden (Monte Carlo) data.
  4. *
  5. * Hidden info stores additional information, which is not in a standard track.
  6. *
  7. * \author Grigory Nigmatkulov (NRNU MEPhI)
  8. * \date May 18, 2019
  9. * \email nigmatkulov@gmail.com
  10. */
  11. #ifndef MpdFemtoHiddenInfo_h
  12. #define MpdFemtoHiddenInfo_h
  13. // MpdFemtoMaker headers
  14. #include "MpdFemtoTypes.h"
  15. // ROOT headers
  16. #include "TLorentzVector.h"
  17. //_________________
  18. class MpdFemtoHiddenInfo {
  19. public:
  20. /// Default constructor
  21. MpdFemtoHiddenInfo() {
  22. /* empty */
  23. }
  24. /// Default destructor
  25. virtual ~MpdFemtoHiddenInfo() {
  26. /* empty */
  27. }
  28. // !!! MANDATORY !!!
  29. // --- Copy the hidden info from MpdFemtoTrack to MpdFemtoParticle
  30. /// Set emission point
  31. virtual void setEmissionPoint(const double& x, const double& y, const double& z, const double& t) = 0;
  32. /// Set emission point
  33. virtual void SetEmissionPoint(const double& x, const double& y, const double& z, const double& t) {
  34. setEmissionPoint(x, y, z, t);
  35. }
  36. /// Retrieve emission point
  37. virtual TLorentzVector emissionPoint() const = 0;
  38. /// Retrieve emission point
  39. virtual TLorentzVector EmissionPoint() const {
  40. return emissionPoint();
  41. }
  42. /// Return PDG code of the particle
  43. virtual int pdgId() const = 0;
  44. /// Return PDG code of the particle
  45. virtual int PdgId() const {
  46. return pdgId();
  47. }
  48. /// Retrieve hidden information
  49. virtual MpdFemtoHiddenInfo* getParticleHiddenInfo() const = 0;
  50. /// Retrieve hidden information
  51. virtual MpdFemtoHiddenInfo* GetParticleHiddenInfo() const {
  52. return getParticleHiddenInfo();
  53. }
  54. /// Clone hidden information
  55. virtual MpdFemtoHiddenInfo* clone() const;
  56. /// Clone hidden information
  57. virtual MpdFemtoHiddenInfo* Clone() const {
  58. return clone();
  59. }
  60. };
  61. //_________________
  62. inline MpdFemtoHiddenInfo* MpdFemtoHiddenInfo::clone() const {
  63. return getParticleHiddenInfo();
  64. }
  65. #endif // #define MpdFemtoHiddenInfo_h