PandaRoot
PndDiscSensorMCPoint.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 photons
18 //-------------------------------------------------------------------------
19 
20 #ifndef PNDDISCSENSORMCPOINT_HH
21 #define PNDDISCSENSORMCPOINT_HH
22 
23 // Fairroot / PROOT headers
24 #include "FairMCPoint.h"
25 
26 // cpp headers
27 #include <math.h>
28 
29 class PndDiscSensorMCPoint : public FairMCPoint {
30  public:
32 
33  PndDiscSensorMCPoint(Int_t track_id, // base
34  // Int_t event_id, // in FairMCEventHeader
35  Int_t det_id, // base
36  Int_t volume_id, // -- use some kind of volume identifier here (or just sensor copy number?)
37  Double_t const &internal_reflection_angle, // may be 0.0 if none registered (e.g. not created in radiator)
38  TVector3 const &pos_in, // base
39  TVector3 const &mom_in, // base
40  Double_t const &total_tof, // base
41  Double_t const &total_length, // base
42  Double_t const &energy_loss, // base
43  Double_t const &track_start_time // global time of track creation
44  );
45 
46  virtual ~PndDiscSensorMCPoint();
47 
48  virtual void Print(const Option_t *opt = nullptr) const;
49  const Double_t &GetTotalReflectionAngle() { return internal_reflection_angle; }
50  Double_t ComputeWavelenght() { return 1.239841939E-6 / sqrt(fPx * fPx + fPy * fPy + fPz * fPz); }
51  Double_t ComputeTrackTof() { return fTime - track_start_time; }
52 
53  Int_t volume_id;
55  Double_t track_start_time;
56  Int_t my_track_id;
57 
58  TVector3 photon_entering_pos; // position of photon entering optics
59  TVector3 photon_entering_momentum; // momentum vector of photon entering optics
60 
61  ClassDef(PndDiscSensorMCPoint, 4)
62 };
63 
64 #endif // PNDDISCSENSORMCPOINT_HH
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:40
virtual ~PndDiscSensorMCPoint()
const Double_t & GetTotalReflectionAngle()
FairMCPoint forces the implementation.
virtual void Print(const Option_t *opt=nullptr) const