Loading...
Searching...
No Matches
XAluminumElectrodeHit.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26/// \file exoticphysics/phonon/src/XAluminumElectrodeHit.cc
27/// \brief Implementation of the XAluminumElectrodeHit class
28//
29//
30// 20141008 Allocators must be thread-local, and must be pointers
31
33
34#include "G4LogicalVolume.hh"
35#include "G4Transform3D.hh"
36#include "G4RotationMatrix.hh"
37#include "G4ios.hh"
38#include "G4VVisManager.hh"
39#include "G4Circle.hh"
40#include "G4Colour.hh"
41#include "G4AttDefStore.hh"
42#include "G4AttDef.hh"
43#include "G4AttValue.hh"
44#include "G4UnitsTable.hh"
45#include "G4VisAttributes.hh"
46#include "G4SystemOfUnits.hh"
47
49
55
56//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
57
60
61//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
62
64: G4VHit() {
65 fTime = right.fTime;
66 fEdep = right.fEdep;
67 fWorldPos = right.fWorldPos;
68 fLocalPos = right.fLocalPos;
69}
70
71//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
72
74{
76 fEdep = right.fEdep;
77 fWorldPos = right.fWorldPos;
78 fLocalPos = right.fLocalPos;
79 return *this;
80}
81
82//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
83
85{
86 return false;
87}
88
89//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
90
92{
93 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
94 if(pVVisManager)
95 {
96 G4Circle circle(fWorldPos);
97 circle.SetScreenSize(15);
98 circle.SetFillStyle(G4Circle::filled);
99 G4Colour colour(0.65,0.65,0.);
100 G4VisAttributes attribs(colour);
101 attribs.SetStartTime(fTime);
102 attribs.SetEndTime(fTime+1*ms);
103 circle.SetVisAttributes(attribs);
104 pVVisManager->Draw(circle);
105 }
106}
107
108//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
109
110const std::map<G4String,G4AttDef>* XAluminumElectrodeHit::GetAttDefs() const
111{
112 G4bool isNew;
113 std::map<G4String,G4AttDef>* store
114 = G4AttDefStore::GetInstance("XAluminumElectrodeHit",isNew);
115 if (isNew) {
116 G4String HitType("HitType");
117 (*store)[HitType] = G4AttDef(HitType,"Hit Type","Physics","","G4String");
118
119 G4String Time("Time");
120 (*store)[Time] = G4AttDef(Time,"Time","Physics","G4BestUnit","G4double");
121
122 G4String EDep("EDep");
123 (*store)[EDep] = G4AttDef(Time,"EDep","Physics","G4BestUnit","G4double");
124
125 G4String Pos("Pos");
126 (*store)[Pos] = G4AttDef(Pos, "Position",
127 "Physics","G4BestUnit","G4ThreeVector");
128 }
129 return store;
130}
131
132//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
133
134std::vector<G4AttValue>* XAluminumElectrodeHit::CreateAttValues() const
135{
136 std::vector<G4AttValue>* values = new std::vector<G4AttValue>;
137
138 values->push_back(G4AttValue("HitType","XAluminumElectrodeHit",""));
139
140 values->push_back
141 (G4AttValue("Time",G4BestUnit(fTime,"Time"),""));
142
143 values->push_back
144 (G4AttValue("EDep",G4BestUnit(fEdep,"Energy"),""));
145
146 values->push_back
147 (G4AttValue("Pos",G4BestUnit(fWorldPos,"Length"),""));
148
149 return values;
150}
151
152//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
153
155{
156 G4cout << " time " << fTime/ns << " (nsec) : at " << fLocalPos
157 << " -- fEdep = " << fEdep/eV << " [eV]" << G4endl;
158}
159
160
G4ThreadLocal G4Allocator< XAluminumElectrodeHit > * XAluminumElectrodeHitAllocator
Definition of the XAluminumElectrodeHit class.
const XAluminumElectrodeHit & operator=(const XAluminumElectrodeHit &right)
virtual std::vector< G4AttValue > * CreateAttValues() const
G4bool operator==(const XAluminumElectrodeHit &right) const
virtual const std::map< G4String, G4AttDef > * GetAttDefs() const

Applications | User Support | Publications | Collaboration