Geant4  10.02.p03
FCALHadModule Class Reference

#include <FCALHadModule.hh>

Collaboration diagram for FCALHadModule:

Public Member Functions

 FCALHadModule ()
 
 ~FCALHadModule ()
 
G4LogicalVolumeConstruct ()
 
void InitializeGeometry ()
 
G4int GetF2TileID (G4int)
 

Private Attributes

G4int NF2LarGap
 
G4intF2LArGapID
 
G4intF2LArIX
 
G4intF2LArJY
 
G4intF2LArITile
 
G4doubleF2LArGapPosX
 
G4doubleF2LArGapPosY
 
G4double HadModuleRMin
 
G4double HadModuleRMax
 
G4double HadModuleLenght
 
G4double HadModuleStartPhi
 
G4double HadModuleDPhi
 
G4double FCAL2HadSmart
 
G4double WAbsorberRMin
 
G4double WAbsorberRMax
 
G4double WAbsorberLenght
 
G4double WAbsorberStartPhi
 
G4double WAbsorberDPhi
 
G4double CuPlateLenght
 
G4double CuPlateAPosZ
 
G4double CuPlateBPosZ
 
G4int NCableTroff
 
G4double F2TroffRmin
 
G4double F2TroffRmax
 
G4double F2TroffMainLenght
 
G4double F2TroffABLenght
 
G4double F2TroffStartPhi
 
G4double F2TroffDphi
 
G4double F2TroffRotZ
 
G4double F2TroffABPosZ
 
G4double F2LArGapRmin
 
G4double F2LArGapRmax
 
G4double F2LArGapLenght
 
G4double F2LArGapStartPhi
 
G4double F2LArGapDphi
 
G4double F2RodRmin
 
G4double F2RodRmax
 
G4double F2RodLenght
 
G4double F2RodStartPhi
 
G4double F2RodDphi
 
FCALHadModuleSDFcalHadModuleSD
 

Detailed Description

Definition at line 45 of file FCALHadModule.hh.

Constructor & Destructor Documentation

◆ FCALHadModule()

FCALHadModule::FCALHadModule ( )

Definition at line 62 of file FCALHadModule.cc.

62  :
64 {
65  F2LArGapID = new G4int[2600];
66  F2LArIX = new G4int[2600];
67  F2LArJY = new G4int[2600];
68  F2LArITile = new G4int[2600];
69  F2LArGapPosX = new G4double[2600];
70  F2LArGapPosY = new G4double[2600];
71 }
int G4int
Definition: G4Types.hh:78
FCALHadModuleSD * FcalHadModuleSD
G4double * F2LArGapPosX
G4int * F2LArITile
double G4double
Definition: G4Types.hh:76
G4int * F2LArGapID
G4double * F2LArGapPosY

◆ ~FCALHadModule()

FCALHadModule::~FCALHadModule ( )

Definition at line 73 of file FCALHadModule.cc.

73  {
74  delete [] F2LArGapID;
75  delete [] F2LArGapPosX;
76  delete [] F2LArGapPosY;
77  delete [] F2LArIX;
78  delete [] F2LArJY;
79  delete [] F2LArITile;
80 }
G4double * F2LArGapPosX
G4int * F2LArITile
G4int * F2LArGapID
G4double * F2LArGapPosY

Member Function Documentation

◆ Construct()

G4LogicalVolume * FCALHadModule::Construct ( void  )

Definition at line 104 of file FCALHadModule.cc.

105 {
106  //-----------------------------
107  // construction of materials
108  //-----------------------------
109 
110  FCALMaterialConsultant * FCALMaterials =
112 
113  G4VisAttributes * ColorOfTungsten = new G4VisAttributes(G4Colour(.5,.5,.5));
114  G4VisAttributes * ColorOfCopper =new G4VisAttributes(G4Colour(0.58,0.15,0.05));
115  G4VisAttributes * ColorOfLarg = new G4VisAttributes(G4Colour(0.,0.,1.));
116 
117 
118  //----------------------------
119  // Read Parameters
120  //----------------------------
122 
123 
124  //-----------------------------------------
125  // the logical to be returned (mother)
126  //-----------------------------------------
127 
128  G4Tubs * SolidHadModule =
129  new G4Tubs("HadModuleSolid", HadModuleRMin, HadModuleRMax, HadModuleLenght,
131  G4LogicalVolume * LogicalHadModule =
132  new G4LogicalVolume(SolidHadModule, FCALMaterials->Material("Copper"),
133  "HadModuleLogical");
134 
135  LogicalHadModule->SetSmartless(FCAL2HadSmart);
136 
137  LogicalHadModule->SetVisAttributes(ColorOfCopper);
138  // LogicalHadModule->SetVisAttributes(G4VisAttributes::Invisible);
139 
140 
141  //-----------------------------------------
142  // Tungsten Absorber
143  //-----------------------------------------
144  G4Tubs * SolidWAbsorber =
145  new G4Tubs("WAbsorberSolid", WAbsorberRMin, WAbsorberRMax, WAbsorberLenght,
147  G4LogicalVolume * LogicalWAbsorber =
148  new G4LogicalVolume(SolidWAbsorber, FCALMaterials->Material("FCAL2WFeNi"),
149  "SolidWLogical");
150 // G4VPhysicalVolume * PhysicalWAbsorber =
151  new G4PVPlacement(0, G4ThreeVector(), LogicalWAbsorber, "WAbsorberPhysical",
152  LogicalHadModule, 0, 0);
153 
154  LogicalWAbsorber->SetVisAttributes(ColorOfTungsten);
155  // LogicalWAbsorber->SetVisAttributes(G4VisAttributes::Invisible);
156 
157 
158  // -----------------
159  // Copper Plates
160  //------------------
161  G4Tubs * SolidCuPlate =
162  new G4Tubs("CuPlateSolid",HadModuleRMin, HadModuleRMax, CuPlateLenght,
164  G4LogicalVolume * LogicalCuPlate =
165  new G4LogicalVolume(SolidCuPlate, FCALMaterials->Material("Copper"), "CuPlateLogical");
166 
167 // G4VPhysicalVolume * PhysicalCuPlateA =
168  new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateAPosZ), LogicalCuPlate,
169  "CuPlateAPhysical", LogicalHadModule, 0, 0);
170 // G4VPhysicalVolume * PhysicalCuPlateB =
171  new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateBPosZ), LogicalCuPlate,
172  "CuPlateBPhysical", LogicalHadModule, 0, 0);
173 
174  LogicalCuPlate->SetVisAttributes(ColorOfCopper);
175  // LogicalCuPlate->SetVisAttributes(G4VisAttributes::Invisible);
176 
177  //------------------------------------------
178  // Had Module (F2) Main and A/B Cable Troff
179  //------------------------------------------
180  G4Tubs * SolidF2TroffMain =
181  new G4Tubs("F2TroffMainSolid", F2TroffRmin, F2TroffRmax, F2TroffMainLenght,
183  G4LogicalVolume * LogicalF2TroffMain =
184  new G4LogicalVolume(SolidF2TroffMain, FCALMaterials->Material("FCAL2CuArKap"),
185  "F2TroffMainLogical");
186 
187  G4Tubs * SolidF2TroffAB =
188  new G4Tubs("F2TroffABSolid", F2TroffRmin, F2TroffRmax, F2TroffABLenght,
190  G4LogicalVolume * LogicalF2TroffAB =
191  new G4LogicalVolume(SolidF2TroffAB, FCALMaterials->Material("FCAL2CuArKap"),
192  "F2TroffABLogical");
193 
194  G4ThreeVector F2TroffMainTrans(0.,0.,0.);
195  G4ThreeVector F2TroffABTrans(0.,0.,0.);
196  G4RotationMatrix F2TroffRot;
197  G4int i=0;
198  for(i=0 ; i < NCableTroff ; i++)
199  {
200 // G4VPhysicalVolume * PhysicalF2TroffMain =
201  new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffMainTrans), LogicalF2TroffMain,
202  "F2TroffMainPhysical", LogicalWAbsorber,0,i+1);
203 
204 // G4VPhysicalVolume * PhysicalF2TroffAB =
205  new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffABTrans), LogicalF2TroffAB,
206  "F2TroffAPhysical", LogicalCuPlate, 0, i+1);
207 
208  F2TroffRot.rotateZ(F2TroffRotZ);
209  }
210 
211  LogicalF2TroffMain->SetVisAttributes(ColorOfCopper);
212  // LogicalF2TroffMain->SetVisAttributes(G4VisAttributes::Invisible);
213  LogicalF2TroffAB->SetVisAttributes(ColorOfCopper);
214  // LogicalF2TroffAB->SetVisAttributes(G4VisAttributes::Invisible);
215 
216 
217  //----------------------
218  // LArg Gaps + F2 Rod
219  //----------------------
220  G4Tubs * SolidF2LArGap =
221  new G4Tubs("F2LArGapSolid", F2LArGapRmin, F2LArGapRmax, F2LArGapLenght,
223  G4LogicalVolume * LogicalF2LArGap =
224  new G4LogicalVolume(SolidF2LArGap, FCALMaterials->Material("LiquidArgon"),
225  "F2LArGapLogical");
226 
227  LogicalF2LArGap->SetVisAttributes(ColorOfLarg);
228  // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible);
229 
230  G4Tubs * SolidF2Rod =
232  G4LogicalVolume * LogicalF2Rod =
233  new G4LogicalVolume(SolidF2Rod, FCALMaterials->Material("Tungsten"),"F2RodLogical");
234 // G4VPhysicalVolume * PhysicalF2Rod =
235  new G4PVPlacement(0,G4ThreeVector(),LogicalF2Rod,"F2RodPhysical",LogicalF2LArGap,0, 0);
236 
237  LogicalF2Rod->SetVisAttributes(ColorOfTungsten);
238  // LogicalF2Rod->SetVisAttributes(G4VisAttributes::Invisible);
239 
240  //---------------------------------
241  // Electrod (Rod + LArg) placement
242  //---------------------------------
243  for(i=1; i < NF2LarGap; i++){
244 // G4VPhysicalVolume * PhysicalF2LArGap =
246  LogicalF2LArGap,"F2LArGapPhysical",
247  LogicalHadModule, 0, i);
248  };
249 
250  LogicalF2LArGap->SetVisAttributes(ColorOfLarg);
251  // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible);
252 
253 
254  // Sensitive Volumes
256 
257  if(!FcalHadModuleSD)
258  {
259  FcalHadModuleSD = new FCALHadModuleSD("FCALTB/HadModuleSD");
261  }
262  LogicalF2LArGap->SetSensitiveDetector(FcalHadModuleSD);
263 
264 
265  return LogicalHadModule;
266 
267 }
G4double F2TroffDphi
static const double cm
Definition: G4SIunits.hh:118
static FCALMaterialConsultant * GetInstance()
G4double HadModuleLenght
G4double F2LArGapStartPhi
G4double F2TroffRmax
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Tubs.hh:85
G4double F2TroffStartPhi
G4double F2LArGapDphi
G4double HadModuleRMax
G4double F2TroffRmin
void InitializeGeometry()
G4double F2TroffRotZ
G4double WAbsorberStartPhi
G4double F2RodRmax
int G4int
Definition: G4Types.hh:78
G4double F2TroffABLenght
G4double CuPlateAPosZ
G4Material * Material(G4String)
G4double CuPlateLenght
G4double CuPlateBPosZ
G4double WAbsorberRMin
G4double HadModuleStartPhi
G4double HadModuleRMin
G4double F2RodDphi
G4double F2TroffMainLenght
HepGeom::Transform3D G4Transform3D
G4double WAbsorberRMax
G4double FCAL2HadSmart
FCALHadModuleSD * FcalHadModuleSD
G4double WAbsorberDPhi
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
G4double F2LArGapRmax
void SetSmartless(G4double s)
G4double * F2LArGapPosX
G4double F2RodRmin
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
HepRotation & rotateZ(double delta)
Definition: Rotation.cc:92
G4double F2LArGapRmin
G4double F2RodStartPhi
G4double WAbsorberLenght
G4double F2RodLenght
G4double HadModuleDPhi
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
G4double F2LArGapLenght
G4double * F2LArGapPosY
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetF2TileID()

G4int FCALHadModule::GetF2TileID ( G4int  TileID)

Definition at line 269 of file FCALHadModule.cc.

270 {
271  return F2LArITile[TileID];
272 }
G4int * F2LArITile
Here is the caller graph for this function:

◆ InitializeGeometry()

void FCALHadModule::InitializeGeometry ( )

Definition at line 83 of file FCALHadModule.cc.

83  {
84 
85 #include "FCALHadModuleParameters.input"
86 
87  std::ifstream File
88  ("geom_data/FCal2Electrodes.dat");
89 
90  if(!File) G4cerr << "Failed to open file FCal2Electrode data file" << G4endl;
91  File.seekg(0);
92 
93  NF2LarGap = 0;
94  while(!(File.eof())) {
95  NF2LarGap++;
98  };
99 
100  G4cout << "*********" << " Number of Rods in FCAL2 : " << NF2LarGap-1 << G4endl;
101 }
G4GLOB_DLL std::ostream G4cout
G4double * F2LArGapPosX
#define G4endl
Definition: G4ios.hh:61
G4int * F2LArITile
G4int * F2LArGapID
G4GLOB_DLL std::ostream G4cerr
G4double * F2LArGapPosY
Here is the caller graph for this function:

Member Data Documentation

◆ CuPlateAPosZ

G4double FCALHadModule::CuPlateAPosZ
private

Definition at line 77 of file FCALHadModule.hh.

◆ CuPlateBPosZ

G4double FCALHadModule::CuPlateBPosZ
private

Definition at line 77 of file FCALHadModule.hh.

◆ CuPlateLenght

G4double FCALHadModule::CuPlateLenght
private

Definition at line 77 of file FCALHadModule.hh.

◆ F2LArGapDphi

G4double FCALHadModule::F2LArGapDphi
private

Definition at line 85 of file FCALHadModule.hh.

◆ F2LArGapID

G4int* FCALHadModule::F2LArGapID
private

Definition at line 61 of file FCALHadModule.hh.

◆ F2LArGapLenght

G4double FCALHadModule::F2LArGapLenght
private

Definition at line 84 of file FCALHadModule.hh.

◆ F2LArGapPosX

G4double* FCALHadModule::F2LArGapPosX
private

Definition at line 65 of file FCALHadModule.hh.

◆ F2LArGapPosY

G4double* FCALHadModule::F2LArGapPosY
private

Definition at line 66 of file FCALHadModule.hh.

◆ F2LArGapRmax

G4double FCALHadModule::F2LArGapRmax
private

Definition at line 84 of file FCALHadModule.hh.

◆ F2LArGapRmin

G4double FCALHadModule::F2LArGapRmin
private

Definition at line 84 of file FCALHadModule.hh.

◆ F2LArGapStartPhi

G4double FCALHadModule::F2LArGapStartPhi
private

Definition at line 85 of file FCALHadModule.hh.

◆ F2LArITile

G4int* FCALHadModule::F2LArITile
private

Definition at line 64 of file FCALHadModule.hh.

◆ F2LArIX

G4int* FCALHadModule::F2LArIX
private

Definition at line 62 of file FCALHadModule.hh.

◆ F2LArJY

G4int* FCALHadModule::F2LArJY
private

Definition at line 63 of file FCALHadModule.hh.

◆ F2RodDphi

G4double FCALHadModule::F2RodDphi
private

Definition at line 86 of file FCALHadModule.hh.

◆ F2RodLenght

G4double FCALHadModule::F2RodLenght
private

Definition at line 86 of file FCALHadModule.hh.

◆ F2RodRmax

G4double FCALHadModule::F2RodRmax
private

Definition at line 86 of file FCALHadModule.hh.

◆ F2RodRmin

G4double FCALHadModule::F2RodRmin
private

Definition at line 86 of file FCALHadModule.hh.

◆ F2RodStartPhi

G4double FCALHadModule::F2RodStartPhi
private

Definition at line 86 of file FCALHadModule.hh.

◆ F2TroffABLenght

G4double FCALHadModule::F2TroffABLenght
private

Definition at line 81 of file FCALHadModule.hh.

◆ F2TroffABPosZ

G4double FCALHadModule::F2TroffABPosZ
private

Definition at line 82 of file FCALHadModule.hh.

◆ F2TroffDphi

G4double FCALHadModule::F2TroffDphi
private

Definition at line 81 of file FCALHadModule.hh.

◆ F2TroffMainLenght

G4double FCALHadModule::F2TroffMainLenght
private

Definition at line 80 of file FCALHadModule.hh.

◆ F2TroffRmax

G4double FCALHadModule::F2TroffRmax
private

Definition at line 80 of file FCALHadModule.hh.

◆ F2TroffRmin

G4double FCALHadModule::F2TroffRmin
private

Definition at line 80 of file FCALHadModule.hh.

◆ F2TroffRotZ

G4double FCALHadModule::F2TroffRotZ
private

Definition at line 82 of file FCALHadModule.hh.

◆ F2TroffStartPhi

G4double FCALHadModule::F2TroffStartPhi
private

Definition at line 81 of file FCALHadModule.hh.

◆ FCAL2HadSmart

G4double FCALHadModule::FCAL2HadSmart
private

Definition at line 72 of file FCALHadModule.hh.

◆ FcalHadModuleSD

FCALHadModuleSD* FCALHadModule::FcalHadModuleSD
private

Definition at line 88 of file FCALHadModule.hh.

◆ HadModuleDPhi

G4double FCALHadModule::HadModuleDPhi
private

Definition at line 71 of file FCALHadModule.hh.

◆ HadModuleLenght

G4double FCALHadModule::HadModuleLenght
private

Definition at line 70 of file FCALHadModule.hh.

◆ HadModuleRMax

G4double FCALHadModule::HadModuleRMax
private

Definition at line 70 of file FCALHadModule.hh.

◆ HadModuleRMin

G4double FCALHadModule::HadModuleRMin
private

Definition at line 70 of file FCALHadModule.hh.

◆ HadModuleStartPhi

G4double FCALHadModule::HadModuleStartPhi
private

Definition at line 71 of file FCALHadModule.hh.

◆ NCableTroff

G4int FCALHadModule::NCableTroff
private

Definition at line 79 of file FCALHadModule.hh.

◆ NF2LarGap

G4int FCALHadModule::NF2LarGap
private

Definition at line 60 of file FCALHadModule.hh.

◆ WAbsorberDPhi

G4double FCALHadModule::WAbsorberDPhi
private

Definition at line 75 of file FCALHadModule.hh.

◆ WAbsorberLenght

G4double FCALHadModule::WAbsorberLenght
private

Definition at line 74 of file FCALHadModule.hh.

◆ WAbsorberRMax

G4double FCALHadModule::WAbsorberRMax
private

Definition at line 74 of file FCALHadModule.hh.

◆ WAbsorberRMin

G4double FCALHadModule::WAbsorberRMin
private

Definition at line 74 of file FCALHadModule.hh.

◆ WAbsorberStartPhi

G4double FCALHadModule::WAbsorberStartPhi
private

Definition at line 75 of file FCALHadModule.hh.


The documentation for this class was generated from the following files: