Geant4  10.02.p03
FCALEMModule Class Reference

#include <FCALEMModule.hh>

Collaboration diagram for FCALEMModule:

Public Member Functions

 FCALEMModule ()
 
 ~FCALEMModule ()
 
G4LogicalVolumeConstruct ()
 
void InitializeGeometry ()
 
G4int GetF1TileID (G4int)
 
G4double GetF1LArGapPosX (G4int)
 

Private Attributes

G4int NF1LarGap
 
G4intF1LArGapID
 
G4intF1LArIX
 
G4intF1LArJY
 
G4intF1LArITile
 
G4doubleF1LArGapPosX
 
G4doubleF1LArGapPosY
 
G4double EmModuleRMin
 
G4double EmModuleRMax
 
G4double EmModuleLenght
 
G4double EmModuleStartPhi
 
G4double EmModuleDPhi
 
G4double FCALEmSmart
 
G4int NCableTroff
 
G4double F1CableTroffRMin
 
G4double F1CableTroffRMax
 
G4double F1CableTroffLenght
 
G4double F1CableTroffStartPhi
 
G4double F1CableTroffDPhi
 
G4double F1CableTroffRotZ
 
G4double F1LArGapRmin
 
G4double F1LArGapRmax
 
G4double F1LArGapLenght
 
G4double F1LArGapStartPhi
 
G4double F1LArGapDPhi
 
FCALEMModuleSDFcalEmModuleSD
 

Detailed Description

Definition at line 45 of file FCALEMModule.hh.

Constructor & Destructor Documentation

◆ FCALEMModule()

FCALEMModule::FCALEMModule ( )

Definition at line 61 of file FCALEMModule.cc.

61  :
63  {
64  F1LArGapID = new G4int[2400];
65  F1LArIX = new G4int[2400];
66  F1LArJY = new G4int[2400];
67  F1LArITile = new G4int[2400];
68  F1LArGapPosX = new G4double[2400];
69  F1LArGapPosY = new G4double[2400];
70 }
G4int * F1LArIX
Definition: FCALEMModule.hh:63
G4double * F1LArGapPosY
Definition: FCALEMModule.hh:67
G4int * F1LArGapID
Definition: FCALEMModule.hh:62
int G4int
Definition: G4Types.hh:78
G4int * F1LArJY
Definition: FCALEMModule.hh:64
G4int * F1LArITile
Definition: FCALEMModule.hh:65
G4double * F1LArGapPosX
Definition: FCALEMModule.hh:66
FCALEMModuleSD * FcalEmModuleSD
Definition: FCALEMModule.hh:82
double G4double
Definition: G4Types.hh:76

◆ ~FCALEMModule()

FCALEMModule::~FCALEMModule ( )

Definition at line 73 of file FCALEMModule.cc.

73  {
74  delete [] F1LArGapID;
75  delete [] F1LArGapPosX;
76  delete [] F1LArGapPosY;
77  delete [] F1LArIX;
78  delete [] F1LArJY;
79  delete [] F1LArITile;
80 }
G4int * F1LArIX
Definition: FCALEMModule.hh:63
G4double * F1LArGapPosY
Definition: FCALEMModule.hh:67
G4int * F1LArGapID
Definition: FCALEMModule.hh:62
G4int * F1LArJY
Definition: FCALEMModule.hh:64
G4int * F1LArITile
Definition: FCALEMModule.hh:65
G4double * F1LArGapPosX
Definition: FCALEMModule.hh:66

Member Function Documentation

◆ Construct()

G4LogicalVolume * FCALEMModule::Construct ( void  )

Definition at line 102 of file FCALEMModule.cc.

103 {
104  //-----------------------------
105  // construction of materials
106  //-----------------------------
107  FCALMaterialConsultant *FCALMaterials =
109 
110  G4VisAttributes * ColorOfEMModule = new G4VisAttributes(G4Colour(1.,0.,0.5));
111 // G4VisAttributes * ColorOfLArg = new G4VisAttributes(G4Colour(0.,0.,1.));
112 
113  //----------------------------
114  // Read Parameters
115  //----------------------------
117 
118 //-----------------------------------------
119 // Logical to be returned (FCAL EM module)
120 //-----------------------------------------
121  G4Tubs * SolidEmModule =
122  new G4Tubs("EmModuleSold", EmModuleRMin, EmModuleRMax, EmModuleLenght,
124  G4LogicalVolume * LogicalEmModule =
125  new G4LogicalVolume(SolidEmModule, FCALMaterials->Material("Copper"),
126  "EmModuleLogical");
127 
128  LogicalEmModule->SetSmartless(FCALEmSmart);
129 
130  LogicalEmModule->SetVisAttributes(ColorOfEMModule);
131  // LogicalEmModule->SetVisAttributes(G4VisAttributes::Invisible);
132 
133 
134 //---------------------
135 // FCAL Cable Troff
136 //---------------------
137  G4Tubs * SolidF1CableTroff =
138  new G4Tubs("F1CableTroffSolid", F1CableTroffRMin, F1CableTroffRMax,
140  G4LogicalVolume * LogicalF1CableTroff =
141  new G4LogicalVolume(SolidF1CableTroff, FCALMaterials->Material("FCAL1CuArKap"),
142  "F1CableTroffLogical");
143 
144  G4ThreeVector F1CableTroffTrans(0.,0.,0.);
145  G4RotationMatrix F1CableTroffRot;
146 
147  G4int i=0;
148  for(i=0 ; i < NCableTroff ; i++)
149  {
150 // G4VPhysicalVolume * PhysicalF1CableTroff =
151  new G4PVPlacement(G4Transform3D(F1CableTroffRot,F1CableTroffTrans),
152  LogicalF1CableTroff,"F1CableTroffPhysical",
153  LogicalEmModule,0,i+1);
154 
155  F1CableTroffRot.rotateZ(F1CableTroffRotZ);
156  }
157 
158  LogicalF1CableTroff->SetVisAttributes(ColorOfEMModule);
159  // LogicalF1CableTroff->SetVisAttributes(G4VisAttributes::Invisible);
160 
161 
162  //----------------------
163  // LArg gaps
164  //----------------------
165 
166  G4Tubs * SolidF1LArGap =
167  new G4Tubs("F1LArGapSolid",F1LArGapRmin, F1LArGapRmax, F1LArGapLenght,
169 
170  G4LogicalVolume * LogicalF1LArGap =
171  new G4LogicalVolume(SolidF1LArGap, FCALMaterials->Material("LiquidArgon"),
172  "LArg Gap");
173 
174  for(i=1; i < NF1LarGap; i++){
175 // G4VPhysicalVolume * PhysicalF1LArGap =
177  LogicalF1LArGap,"F1LArGapPhysical", LogicalEmModule, 0, i);
178  };
179 
180  // LogicalF1LArGap->SetVisAttributes(ColorOfLArg);
182 
183 
184  // Sensitive Volumes
186 
187  if(!FcalEmModuleSD)
188  {
189  FcalEmModuleSD = new FCALEMModuleSD("FCALTB/EmModuleSD");
191  }
192  LogicalF1LArGap->SetSensitiveDetector(FcalEmModuleSD);
193 
194 
195 
196  return LogicalEmModule;
197 
198 }
static const double cm
Definition: G4SIunits.hh:118
G4double F1LArGapDPhi
Definition: FCALEMModule.hh:80
static FCALMaterialConsultant * GetInstance()
CLHEP::Hep3Vector G4ThreeVector
void InitializeGeometry()
Definition: FCALEMModule.cc:83
Definition: G4Tubs.hh:85
G4double F1CableTroffRotZ
Definition: FCALEMModule.hh:78
G4double F1LArGapRmax
Definition: FCALEMModule.hh:80
G4double EmModuleRMax
Definition: FCALEMModule.hh:71
G4double * F1LArGapPosY
Definition: FCALEMModule.hh:67
G4double F1CableTroffStartPhi
Definition: FCALEMModule.hh:76
int G4int
Definition: G4Types.hh:78
G4double F1LArGapRmin
Definition: FCALEMModule.hh:80
G4Material * Material(G4String)
G4double EmModuleDPhi
Definition: FCALEMModule.hh:71
G4double EmModuleStartPhi
Definition: FCALEMModule.hh:71
G4double F1LArGapLenght
Definition: FCALEMModule.hh:80
HepGeom::Transform3D G4Transform3D
G4double EmModuleRMin
Definition: FCALEMModule.hh:71
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
G4double F1LArGapStartPhi
Definition: FCALEMModule.hh:80
G4double * F1LArGapPosX
Definition: FCALEMModule.hh:66
G4double FCALEmSmart
Definition: FCALEMModule.hh:73
void SetSmartless(G4double s)
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
static const G4VisAttributes Invisible
G4double EmModuleLenght
Definition: FCALEMModule.hh:71
HepRotation & rotateZ(double delta)
Definition: Rotation.cc:92
FCALEMModuleSD * FcalEmModuleSD
Definition: FCALEMModule.hh:82
G4double F1CableTroffRMax
Definition: FCALEMModule.hh:76
G4double F1CableTroffRMin
Definition: FCALEMModule.hh:76
G4double F1CableTroffLenght
Definition: FCALEMModule.hh:76
void SetVisAttributes(const G4VisAttributes *pVA)
G4double F1CableTroffDPhi
Definition: FCALEMModule.hh:76
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
G4int NCableTroff
Definition: FCALEMModule.hh:75
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetF1LArGapPosX()

G4double FCALEMModule::GetF1LArGapPosX ( G4int  GapID)

Definition at line 204 of file FCALEMModule.cc.

205 { return F1LArGapPosX[GapID]; }
G4double * F1LArGapPosX
Definition: FCALEMModule.hh:66

◆ GetF1TileID()

G4int FCALEMModule::GetF1TileID ( G4int  GapID)

Definition at line 201 of file FCALEMModule.cc.

202 { return F1LArITile[GapID]; }
G4int * F1LArITile
Definition: FCALEMModule.hh:65
Here is the caller graph for this function:

◆ InitializeGeometry()

void FCALEMModule::InitializeGeometry ( )

Definition at line 83 of file FCALEMModule.cc.

83  {
84 #include "FCALEMModuleParameters.input"
85  std::ifstream File
86  ("geom_data/FCal1Electrodes.dat");
87 
88  if(!File) G4cerr << "Failed to open file FCal1Electrodes data file " << G4endl;
89  File.seekg(0);
90 
91  NF1LarGap = 0;
92  while(!(File.eof())) {
93  NF1LarGap++;
96  };
97  G4cout << "********" << " Number of Rods in FCAL1 : " << NF1LarGap-1 << G4endl;;
98 }
G4int * F1LArIX
Definition: FCALEMModule.hh:63
G4double * F1LArGapPosY
Definition: FCALEMModule.hh:67
G4int * F1LArGapID
Definition: FCALEMModule.hh:62
G4int * F1LArJY
Definition: FCALEMModule.hh:64
G4int * F1LArITile
Definition: FCALEMModule.hh:65
G4GLOB_DLL std::ostream G4cout
G4double * F1LArGapPosX
Definition: FCALEMModule.hh:66
#define G4endl
Definition: G4ios.hh:61
G4GLOB_DLL std::ostream G4cerr
Here is the caller graph for this function:

Member Data Documentation

◆ EmModuleDPhi

G4double FCALEMModule::EmModuleDPhi
private

Definition at line 71 of file FCALEMModule.hh.

◆ EmModuleLenght

G4double FCALEMModule::EmModuleLenght
private

Definition at line 71 of file FCALEMModule.hh.

◆ EmModuleRMax

G4double FCALEMModule::EmModuleRMax
private

Definition at line 71 of file FCALEMModule.hh.

◆ EmModuleRMin

G4double FCALEMModule::EmModuleRMin
private

Definition at line 71 of file FCALEMModule.hh.

◆ EmModuleStartPhi

G4double FCALEMModule::EmModuleStartPhi
private

Definition at line 71 of file FCALEMModule.hh.

◆ F1CableTroffDPhi

G4double FCALEMModule::F1CableTroffDPhi
private

Definition at line 76 of file FCALEMModule.hh.

◆ F1CableTroffLenght

G4double FCALEMModule::F1CableTroffLenght
private

Definition at line 76 of file FCALEMModule.hh.

◆ F1CableTroffRMax

G4double FCALEMModule::F1CableTroffRMax
private

Definition at line 76 of file FCALEMModule.hh.

◆ F1CableTroffRMin

G4double FCALEMModule::F1CableTroffRMin
private

Definition at line 76 of file FCALEMModule.hh.

◆ F1CableTroffRotZ

G4double FCALEMModule::F1CableTroffRotZ
private

Definition at line 78 of file FCALEMModule.hh.

◆ F1CableTroffStartPhi

G4double FCALEMModule::F1CableTroffStartPhi
private

Definition at line 76 of file FCALEMModule.hh.

◆ F1LArGapDPhi

G4double FCALEMModule::F1LArGapDPhi
private

Definition at line 80 of file FCALEMModule.hh.

◆ F1LArGapID

G4int* FCALEMModule::F1LArGapID
private

Definition at line 62 of file FCALEMModule.hh.

◆ F1LArGapLenght

G4double FCALEMModule::F1LArGapLenght
private

Definition at line 80 of file FCALEMModule.hh.

◆ F1LArGapPosX

G4double* FCALEMModule::F1LArGapPosX
private

Definition at line 66 of file FCALEMModule.hh.

◆ F1LArGapPosY

G4double* FCALEMModule::F1LArGapPosY
private

Definition at line 67 of file FCALEMModule.hh.

◆ F1LArGapRmax

G4double FCALEMModule::F1LArGapRmax
private

Definition at line 80 of file FCALEMModule.hh.

◆ F1LArGapRmin

G4double FCALEMModule::F1LArGapRmin
private

Definition at line 80 of file FCALEMModule.hh.

◆ F1LArGapStartPhi

G4double FCALEMModule::F1LArGapStartPhi
private

Definition at line 80 of file FCALEMModule.hh.

◆ F1LArITile

G4int* FCALEMModule::F1LArITile
private

Definition at line 65 of file FCALEMModule.hh.

◆ F1LArIX

G4int* FCALEMModule::F1LArIX
private

Definition at line 63 of file FCALEMModule.hh.

◆ F1LArJY

G4int* FCALEMModule::F1LArJY
private

Definition at line 64 of file FCALEMModule.hh.

◆ FcalEmModuleSD

FCALEMModuleSD* FCALEMModule::FcalEmModuleSD
private

Definition at line 82 of file FCALEMModule.hh.

◆ FCALEmSmart

G4double FCALEMModule::FCALEmSmart
private

Definition at line 73 of file FCALEMModule.hh.

◆ NCableTroff

G4int FCALEMModule::NCableTroff
private

Definition at line 75 of file FCALEMModule.hh.

◆ NF1LarGap

G4int FCALEMModule::NF1LarGap
private

Definition at line 61 of file FCALEMModule.hh.


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