source: ELYSE/HEAD/source/TrappVolHit.cxx@ 288

Last change on this file since 288 was 286, checked in by campagne, 19 years ago

ELYSE sauvegarde provisoire (JEC)

File size: 3.5 KB
RevLine 
[286]1#include "ELYSE/TrappVolHit.hh"
2
3//Geant4
4#include "G4Box.hh"
5#include "G4AttDefStore.hh"
6#include "G4AttDef.hh"
7#include "G4AttValue.hh"
8#include "G4UnitsTable.hh"
9#include "G4VVisManager.hh"
10#include "G4ParticleTypes.hh"
11#include "G4Circle.hh"
12#include "G4VisAttributes.hh"
13#include "G4RotationMatrix.hh"
14
15//std
16#include <sstream>
17#include <iomanip>
18
19
20//JEC 10/1/06 introduce ELYSE
21namespace ELYSE {
22 G4Allocator<TrappVolHit> TrappVolHitAllocator;
23}
24
25ELYSE::TrappVolHit::TrappVolHit() :
26 time(0.),
27 eTot(0.),
28 position(),
29 trkId(0),
30 parentId(0),
31 pdg(0),
32 edep(0)
33{
34 //JEC very preliminary 15/2/07 for visualisation
35 virtualSolid = (G4CSGSolid*)(new G4Box("VolHit",0.1*mm,0.1*mm,0.1*mm));
36}//Ctor
37
38
39//-----------------------------------------------------------------------------------------
40
41ELYSE::TrappVolHit::~TrappVolHit() {
42 delete virtualSolid;
43}
44
45//-----------------------------------------------------------------------------------------
46
47const std::map<G4String,G4AttDef>* ELYSE::TrappVolHit::GetAttDefs() const {
48 G4bool isNew;
49 std::map<G4String,G4AttDef>* store = G4AttDefStore::GetInstance("TrappVolHit",isNew);
50
51 if (isNew) {
52
53 G4String VSolid("VSolid");
54 (*store)[VSolid] = G4AttDef(VSolid,"Virtual Solid attached to the Hit","Display","","G4VSolid*");
55
56 G4String Position("Position");
57 (*store)[Position] = G4AttDef(Position,"3D Position","Physics","","G4ThreeVector");
58
59 G4String Time("Time");
60 (*store)[Time] = G4AttDef(Time,"Arrival Time","Physics","","G4double");
61
62 G4String TrkID("TrkID");
63 (*store)[TrkID] = G4AttDef(TrkID,"Track Id","Physics","","G4int");
64
65 G4String ParentID("ParentID");
66 (*store)[ParentID] = G4AttDef(ParentID,"Parent Track Id","Physics","","G4int");
67
68 G4String PDG("PDG");
69 (*store)[PDG] = G4AttDef(PDG,"Track PDG Code","Physics","","G4int");
70
71 G4String Etot("Etot");
72 (*store)[Etot] = G4AttDef(Etot,"Track total energy","Physics","","G4double");
73
74 G4String Edep("Edep");
75 (*store)[Edep] = G4AttDef(Edep,"Deposit energy by the track","Physics","","G4double");
76
77 }
78 return store;
79}//GetAttDefs
80
81//----------------------------------------------------------------------------------------------------
82
83std::vector<G4AttValue>* ELYSE::TrappVolHit::CreateAttValues() const {
84
85 std::ostringstream s;
86
87 std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
88
89 s.str("");
90 s << virtualSolid;
91 values->push_back(G4AttValue("VSolid",s.str(),""));
92
93 s.str("");
94 s << &position;
95 values->push_back(G4AttValue("Position",s.str(),""));
96
97 s.str("");
98 s << time;
99 values->push_back(G4AttValue("Time",s.str(),""));
100
101 s.str("");
102 s << trkId;
103 values->push_back(G4AttValue("TrkID",s.str(),""));
104
105 s.str("");
106 s << parentId;
107 values->push_back(G4AttValue("ParentID",s.str(),""));
108
109 s.str("");
110 s << pdg;
111 values->push_back(G4AttValue("PDG",s.str(),""));
112
113 s.str("");
114 s << eTot;
115 values->push_back(G4AttValue("Etot",s.str(),""));
116
117 s.str("");
118 s << edep;
119 values->push_back(G4AttValue("Edep",s.str(),""));
120
121 return values;
122}//CreateAttValues
123
124//-----------------------------------------------------------------------------------------
125
126void ELYSE::TrappVolHit::Print() {
127
128 G4cout.setf(std::ios::fixed);
129 G4cout.precision(2);
130
131 G4cout << " -------> Track [" << trkId << "]"
132 << " PDG: " << pdg
133 << " Parent: " << parentId
134 << " Time: " << time
135 << " Etot " << eTot
136 << " Edep: " << edep
137 << " \n Position ("
138 << position.x() << " , "
139 << position.y() << " , "
140 << position.z() << ")\n "
141 << G4endl;
142 }//Print
143
144
145
Note: See TracBrowser for help on using the repository browser.