3 #ifndef EICG4LUMIDETECTOR_H
4 #define EICG4LUMIDETECTOR_H
11 #include <Geant4/G4Color.hh>
12 #include <Geant4/G4Box.hh>
13 #include <Geant4/G4LogicalVolume.hh>
14 #include <Geant4/G4Material.hh>
15 #include <Geant4/G4PVPlacement.hh>
16 #include <Geant4/G4SubtractionSolid.hh>
17 #include <Geant4/G4SystemOfUnits.hh>
18 #include <Geant4/G4Tubs.hh>
19 #include <Geant4/G4Box.hh>
20 #include <Geant4/G4RotationMatrix.hh>
21 #include <Geant4/G4SystemOfUnits.hh>
22 #include <Geant4/G4TwoVector.hh>
23 #include <Geant4/G4ThreeVector.hh>
24 #include <Geant4/G4Transform3D.hh>
25 #include <Geant4/G4Types.hh>
26 #include <Geant4/G4VPhysicalVolume.hh>
28 #include <Geant4/G4UnionSolid.hh>
29 #include <Geant4/G4VisAttributes.hh>
30 #include <Geant4/G4UniformMagField.hh>
31 #include <Geant4/G4FieldManager.hh>
32 #include <Geant4/G4NistManager.hh>
44 #include <Geant4/G4CSGSolid.hh>
45 #include <Geant4/G4Trap.hh>
46 #include <Geant4/G4NistManager.hh>
49 class G4LogicalVolume;
50 class G4VPhysicalVolume;
67 void Print(
const std::string &what =
"ALL")
const override;
76 int GetDetId(G4VPhysicalVolume *)
const;
82 void AddLumiWindow(G4ThreeVector size, G4ThreeVector
pos,
double angle, std::string
material, G4LogicalVolume *logicWorld);
84 G4ThreeVector
AddLumiExitWindow(G4ThreeVector size, G4ThreeVector
pos,
double factor,
double angle, std::string
material, G4LogicalVolume *logicWorld);
92 void AddCuboid(G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Msize, G4ThreeVector Mpos,
double angle, std::string
material, G4LogicalVolume *logicWorld);
94 G4LogicalVolume*
AddRecCone(G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Msize, G4ThreeVector Mpos, G4ThreeVector Tr2size, G4ThreeVector Tr2pos,
double angle, std::string
material, G4LogicalVolume *logicWorld);
96 void AddExitWindowForV2(G4ThreeVector size, G4ThreeVector pos_daug,
double angle, std::string
material, G4LogicalVolume *logicRecCone);
98 void AddLumiTracker( std::string
name,
int copyNum, G4ThreeVector size, G4ThreeVector
pos, G4LogicalVolume *logicRecCone);
100 void AddCAL( std::string
name, G4ThreeVector size, G4ThreeVector
pos,
int total_tower, G4LogicalVolume *logicWorld );
102 G4LogicalVolume*
MakeTower(G4double calorSizeXY, G4double calorEMZ);
104 void AddExitWindowForV3(G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Tr2size, G4ThreeVector Tr2pos, std::string
material, G4LogicalVolume *logicWorld);
126 #endif // EICG4LUMIDETECTOR_H