source: ELYSE/tags/v1r0/source/TrappVolHit.cxx @ 672

Last change on this file since 672 was 286, checked in by campagne, 17 years ago

ELYSE sauvegarde provisoire (JEC)

File size: 3.5 KB
Line 
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.