source: trunk/examples/novice/gemc/src/MHit.h @ 1309

Last change on this file since 1309 was 807, checked in by garnier, 16 years ago

update

File size: 3.2 KB
Line 
1
2
3
4
5
6#ifndef MHit_H
7#define MHit_H 1
8
9// %%%%%%%%%%
10// G4 headers
11// %%%%%%%%%%
12#include "G4ThreeVector.hh"
13#include "G4VHit.hh"
14
15// %%%%%%%%%%%%%
16// gemc headers
17// %%%%%%%%%%%%%
18#include "detector.h"
19
20// %%%%%%%%%%%
21// C++ headers
22// %%%%%%%%%%%
23#include <iostream>
24using namespace std;
25
26// %%%%%%%%%%%%%%%%
27// Class definition
28// %%%%%%%%%%%%%%%%
29class MHit : public G4VHit
30{
31
32 public:
33   MHit();
34   virtual ~MHit();
35   const MHit& operator=(const MHit&){return *this;}
36
37   void Draw();
38
39 private:
40    vector<G4ThreeVector>   pos;   
41    vector<G4ThreeVector>  Lpos;   
42    vector<double>         edep;   
43    vector<double>         time;   
44    G4ThreeVector           mom;   
45    double                    E;   
46    G4ThreeVector          vert;   
47    int                     PID;   
48    vector<int>         trackID;   
49    vector<identifier> identity;   
50    detector           Detector;   
51    int                    mPID;   
52    int                mtrackID;   
53    G4ThreeVector         mvert;   
54    double              minEdep;   
55
56 public:
57   inline void SetPos(G4ThreeVector xyz)       { pos.push_back(xyz); }
58   inline vector<G4ThreeVector> GetPos()       { return pos; }
59   inline G4ThreeVector GetLastPos()           { if(pos.size()) return pos[pos.size()-1];  }
60
61   inline void SetLPos(G4ThreeVector xyz)      { Lpos.push_back(xyz); }
62   inline vector<G4ThreeVector> GetLPos()      { return Lpos; }
63
64   inline void SetEdep(double depe)            { edep.push_back(depe); }
65   inline vector<double> GetEdep()             { return edep; }
66
67   inline void SetTime(double ctime)           { time.push_back(ctime); }
68   inline vector<double> GetTime()             { return  time; }
69
70   inline void SetMom(G4ThreeVector pxyz)      { mom = pxyz; }
71   inline G4ThreeVector GetMom()               { return mom; }
72
73   inline void SetE(double ene)                { E = ene; }
74   inline double GetE()                        { return E; }
75
76   inline void SetVert(G4ThreeVector ver)      { vert = ver; }
77   inline G4ThreeVector GetVert()              { return  vert; }
78
79   inline void SetPID(string pid)              { PID = mc_number_scheme(pid); }
80   inline int GetPID()                         { return PID; }
81
82   inline void SetTrackId(int tid)             { trackID.push_back(tid); }
83   inline vector<int> GetTrackId()             { return trackID; }
84
85   inline void SetmPID(string mpid)            { mPID = mc_number_scheme(mpid); }
86   inline int GetmPID()                        { return mPID; }
87
88   inline void SetmTrackId(int tid)            { mtrackID = tid; }
89   inline int GetmTrackId()                    { return mtrackID; }
90
91   inline void SetmVert(G4ThreeVector ver)     { mvert = ver; }
92   inline G4ThreeVector GetmVert()             { return  mvert; }
93
94   inline vector<identifier> GetId()           { return identity; }
95   inline void SetId(vector<identifier> iden)  { identity = iden; }
96
97   inline void SetDetector(detector det)       {Detector = det;}
98   inline detector GetDetector()               {return Detector;}
99
100   inline void SetThreshold(double E)          { minEdep = E; }
101   inline double GetThreshold()                { return minEdep; }
102
103   int mc_number_scheme(string);
104
105};
106
107
108#include "G4THitsCollection.hh"
109typedef G4THitsCollection<MHit> MHitCollection;
110
111#endif
Note: See TracBrowser for help on using the repository browser.