Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
geant4-projects
cosmic-rays
Commits
a528218e
Commit
a528218e
authored
Aug 18, 2019
by
MARCOS ANTONIO DE OLIVEIRA DEROS
Browse files
uniform magnetic field added
parent
36559b88
Changes
2
Hide whitespace changes
Inline
Side-by-side
include/B1DetectorConstruction.hh
View file @
a528218e
...
...
@@ -40,6 +40,9 @@ class B1SD;
class
G4VPhysicalVolume
;
class
G4LogicalVolume
;
class
G4VSensitiveDetector
;
class
G4PVPlacement
;
class
G4Tubs
;
class
G4Material
;
using
namespace
std
;
/// Detector construction class to define materials and geometry.
...
...
@@ -51,6 +54,7 @@ class B1DetectorConstruction : public G4VUserDetectorConstruction
virtual
~
B1DetectorConstruction
();
virtual
G4VPhysicalVolume
*
Construct
();
virtual
void
ConstructSDandField
();
G4LogicalVolume
*
GetScoringVolume
()
const
{
return
fScoringVolume
;
}
G4LogicalVolume
*
GetScoringDetector
()
const
{
return
fScoringDetector
;
}
...
...
@@ -61,12 +65,29 @@ class B1DetectorConstruction : public G4VUserDetectorConstruction
std
::
vector
<
G4double
>&
GetPositions
()
{
return
positions
;}
/*
struct detector_air {
G4String name;
G4double position;
G4LogicalVolume* detector = new G4LogicalVolume(detector, world_mat, name);
G4PVPlacement* place = new G4PVPlacement(0,
G4ThreeVector(0,0,(position)),
detector,
name,
fScoringVolume,
false,
1,
checkOverlaps);
};
*/
protected:
G4LogicalVolume
*
fScoringVolume
;
G4LogicalVolume
*
fScoringDetector
;
G4LogicalVolume
*
logicWorld
;
std
::
vector
<
G4double
>
positions
;
G4double
delta
;
G4double
size
;
G4Tubs
*
detector
;
};
...
...
src/B1DetectorConstruction.cc
View file @
a528218e
...
...
@@ -43,7 +43,9 @@
#include "G4SystemOfUnits.hh"
#include "G4VSensitiveDetector.hh"
#include "G4Track.hh"
#include "G4UniformMagField.hh"
#include "G4FieldManager.hh"
#include "G4TransportationManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
...
...
@@ -82,9 +84,10 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct()
G4double
theta_f
=
360.
*
deg
;
G4Material
*
world_mat
=
nist
->
FindOrBuildMaterial
(
"G4_AIR"
);
G4Tubs
*
cilindro
=
new
G4Tubs
(
"world"
,
raio_i
,
raio_e
,
h
,
theta_0
,
theta_f
);
G4LogicalVolume
*
logicWorld
=
logicWorld
=
new
G4LogicalVolume
(
cilindro
,
//its solid
world_mat
,
//its material
"World"
);
//its name
...
...
@@ -107,7 +110,8 @@ G4VPhysicalVolume* B1DetectorConstruction::Construct()
//Criando os Logical volume
G4Tubs
*
detector
=
new
G4Tubs
(
"detector"
,
raio_i
,
raio_e
,
h_detector
,
theta_0
,
theta_f
);
detector
=
new
G4Tubs
(
"detector"
,
raio_i
,
raio_e
,
h_detector
,
theta_0
,
theta_f
);
G4LogicalVolume
*
logicDetector1
=
new
G4LogicalVolume
(
detector
,
...
...
@@ -270,6 +274,9 @@ positions.push_back(pos1);
1
,
checkOverlaps
);
//MELHORAR aqui
G4double
pos2
=
(
initial_pos
+
delta_h
);
positions
.
push_back
(
pos2
);
new
G4PVPlacement
(
0
,
...
...
@@ -659,6 +666,7 @@ new G4PVPlacement(0,
auto
sdman
=
G4SDManager
::
GetSDMpointer
();
G4String
SDname1
;
auto
sensitive1
=
new
B1SD
(
SDname1
=
"SD1"
);
sdman
->
AddNewDetector
(
sensitive1
);
...
...
@@ -822,13 +830,12 @@ G4String SDname17;
logicDetector32
->
SetSensitiveDetector
(
sensitive32
);
//colocando cor vermelha para detectores
G4VisAttributes
*
worldVisAtt1
=
new
G4VisAttributes
(
G4Colour
(
1.0
,
0.0
,
0.0
));
worldVisAtt1
->
SetVisibility
(
true
);
logicDetector1
->
SetVisAttributes
(
worldVisAtt1
);
logicDetector2
->
SetVisAttributes
(
worldVisAtt1
);
logicDetector3
->
SetVisAttributes
(
worldVisAtt1
);
logicDetector4
->
SetVisAttributes
(
worldVisAtt1
);
...
...
@@ -861,8 +868,17 @@ G4String SDname17;
logicDetector31
->
SetVisAttributes
(
worldVisAtt1
);
logicDetector32
->
SetVisAttributes
(
worldVisAtt1
);
return
physWorld
;
}
void
B1DetectorConstruction
::
ConstructSDandField
()
{
//creanting uniform magnetic field
G4MagneticField
*
magField
=
new
G4UniformMagField
(
G4ThreeVector
(
.0000005
*
LT
,
0.
,
0.
));
G4FieldManager
*
FieldMgr
=
new
G4FieldManager
(
magField
);
logicWorld
->
SetFieldManager
(
FieldMgr
,
true
);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment