Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Author: Mathieu Fontaine 27 // fontaine@lps.umontrea 28 // Language: C++ 29 // Tested on : g++ 30 // Prerequisites: None 31 // Purpose: Source file defining 32 // in the cryostat 33 // Developped: 10-March-2000 M.F. 34 // 35 //-------------------------------------------- 36 37 #include "FCALCryostatVolumes.hh" 38 39 #include "FCALMaterialConsultant.hh" 40 41 #include "FCALEMModule.hh" 42 #include "FCALHadModule.hh" 43 44 #include "G4PhysicalConstants.hh" 45 #include "G4SystemOfUnits.hh" 46 #include "G4Box.hh" 47 #include "G4Tubs.hh" 48 #include "G4Trd.hh" 49 #include "G4LogicalVolume.hh" 50 #include "G4VPhysicalVolume.hh" 51 #include "G4PVPlacement.hh" 52 #include "G4SubtractionSolid.hh" 53 54 #include "G4ThreeVector.hh" 55 #include "G4RotationMatrix.hh" 56 #include "G4VisAttributes.hh" 57 #include "G4Colour.hh" 58 59 FCALCryostatVolumes::FCALCryostatVolumes() 60 { 61 #include "FCALCryostatVolumesParameters.input" 62 } 63 64 FCALCryostatVolumes::~FCALCryostatVolumes() {; 65 66 G4LogicalVolume * FCALCryostatVolumes::Constru 67 { 68 69 //----------------------------- 70 // construction of materials 71 //----------------------------- 72 73 FCALMaterialConsultant * FCALMaterials = 74 FCALMaterialConsultant::GetInstance(); 75 76 77 //----------------------------------------- 78 // G4VisAttributes * ColorOfIron = new G4VisA 79 G4VisAttributes * ColorOfLead = new G4VisAtt 80 G4VisAttributes * ColorOfAir = new G4VisAtt 81 // G4VisAttributes * ColorOfLarg = new G4VisA 82 83 84 //----------------------------- 85 // Cryostat 86 //----------------------------- 87 G4Tubs * SolidCryostat = 88 new G4Tubs("CryostatSolid", CryostatRMin, 89 StartingPhi, DPhi); 90 G4LogicalVolume * LogicalCryostat = 91 new G4LogicalVolume(SolidCryostat,FCALMate 92 "CryostatLogical"); 93 94 // LogicalCryostat->SetVisAttributes(ColorOf 95 LogicalCryostat->SetVisAttributes(G4VisAttri 96 97 98 //------------------------------ 99 // Insulation 100 //------------------------------ 101 G4Tubs * SolidInsulation = 102 new G4Tubs("InsulationSolid", InsulationRM 103 InsulationLenght, StartingPhi, DPhi); 104 G4LogicalVolume * LogicalInsulation = 105 new G4LogicalVolume(SolidInsulation, FCALM 106 "InsulationLogical"); 107 // G4VPhysicalVolume * PhysicalInsulation = 108 new G4PVPlacement(0, G4ThreeVector(), Logi 109 LogicalCryostat, 0, 0); 110 111 LogicalInsulation->SetVisAttributes(ColorOfA 112 // LogicalInsulation->SetVisAttributes(G4Vis 113 114 115 //------------------------------------- 116 // Air to replace Iron inside Cryostat 117 //------------------------------------- 118 /* 119 G4Tubs * SolidAirCryostat = 120 new G4Tubs("AirCryostatSolid", CryostatRMi 121 StartingPhi, DPhi); 122 G4LogicalVolume * LogicalAirCryostat = 123 new G4LogicalVolume(SolidAirCryostat, FCAL 124 "AirCryostatLogical"); 125 G4VPhysicalVolume * PhysicalAirCryostat = 126 new G4PVPlacement(0, 0, LogicalAirCryostat 127 LogicalCryostat, 0, 0); 128 129 LogicalAirCryostat->SetVisAttributes(ColorO 130 // LogicalAirCryostat->SetVisAttributes(G4Vi 131 */ 132 133 134 //-------------------- 135 // Liquid Argon 136 //-------------------- 137 G4Tubs * SolidLArg = 138 new G4Tubs("LArgSolid", LArgRMin, LArgRM 139 G4LogicalVolume * LogicalLArg = 140 new G4LogicalVolume(SolidLArg, FCALMater 141 "LArgLogical"); 142 G4VPhysicalVolume * PhysicalLArg = 143 new G4PVPlacement(0,G4ThreeVector(LArgPo 144 LogicalLArg, "LArgPhysical", LogicalCryo 145 146 // LogicalLArg->SetVisAttributes(ColorOfLa 147 LogicalLArg->SetVisAttributes(G4VisAttribu 148 149 //------------------- 150 // Front Excluder 151 //------------------- 152 G4Box * SolidFrontExcluder = 153 new G4Box("FrontExcluderSolid", FrontExclu 154 FrontExcluderSizeZ); 155 G4LogicalVolume * LogicalFrontExcluder = 156 new G4LogicalVolume(SolidFrontExcluder, FC 157 , "FrontExcluderLogical"); 158 159 // G4VPhysicalVolume * PhysicalFrontExcluder 160 new G4PVPlacement(0,G4ThreeVector(FrontExc 161 FrontExcluderPosZ), "FrontExcluderPh 162 LogicalFrontExcluder, PhysicalLArg, 163 164 LogicalFrontExcluder->SetVisAttributes(Color 165 // LogicalFrontExcluder->SetVisAttributes(G4 166 167 168 //-------------------- 169 // Back Excluder 170 //-------------------- 171 G4Trd * SolidBackExcluder = 172 new G4Trd("BackExcluderSolid", BackExclude 173 BackExcluderSize1Y, BackExcluderSize2Y 174 G4LogicalVolume * LogicalBackExcluder = 175 new G4LogicalVolume(SolidBackExcluder, FCA 176 "BackExcluderLogical"); 177 178 G4RotationMatrix * BackExcluderRotationMatri 179 BackExcluderRotationMatrix->rotateX(BackExcl 180 181 // G4VPhysicalVolume * PhysicalBackExcluder = 182 new G4PVPlacement(BackExcluderRotationMatr 183 G4ThreeVector(BackExcluderPosX, Back 184 BackExcluderPosZ), "BackExcluder", L 185 PhysicalLArg, 0,0); 186 187 LogicalBackExcluder->SetVisAttributes(ColorO 188 // LogicalBackExcluder->SetVisAttributes(G4V 189 190 191 //------------------------ 192 // fcal envelope 193 //------------------------ 194 G4Tubs * SolidFCALEnvelope = 195 new G4Tubs("FCALEnvelopeSolid", FCALEnvelo 196 FCALEnvelopeLenght, FCALEnvelopeStart 197 198 G4LogicalVolume * LogicalFCALEnvelope = 199 new G4LogicalVolume(SolidFCALEnvelope, FCA 200 "FCALEnvelopeLogical"); 201 202 G4RotationMatrix * FCALRotationMatrix = new 203 FCALRotationMatrix->rotateX(FCALEnvelopeRotX 204 // FCALRotationMatrix->rotateY(FCALEnvelope 205 206 // G4VPhysicalVolume * PhysicalFCALEnvelopp 207 new G4PVPlacement(FCALRotationMatrix, 208 G4ThreeVector(FCALEnvelopePosX,FCALE 209 , LogicalFCALEnvelope, "FCALEnvelope 210 211 //LogicalFCALEnvelope->SetVisAttributes(Colo 212 LogicalFCALEnvelope->SetVisAttributes(G4VisA 213 214 //----------------------------- 215 // FCAL electromagnetic Module 216 //----------------------------- 217 EmModule = new FCALEMModule(); 218 G4LogicalVolume * LogicalFCALEmModule = EmM 219 220 G4RotationMatrix * EmModuleRot = new G4Rotat 221 EmModuleRot->rotateZ(ModuleRotZ); 222 223 // G4VPhysicalVolume * PhysicalFCALEmModule = 224 new G4PVPlacement(EmModuleRot, 225 G4ThreeVector(FCALEmModulePosX,FCALE 226 LogicalFCALEmModule,"FCALEmModulePhy 227 228 229 //----------------------------- 230 // hadronic fcal 231 //---------------------------- 232 HadModule = new FCALHadModule(); 233 G4LogicalVolume * LogicalFCALHadModule = Ha 234 235 G4RotationMatrix * HadModuleRot = new G4Rota 236 HadModuleRot->rotateZ(ModuleRotZ); 237 238 // G4VPhysicalVolume * PhysicalFCALHadModule 239 new G4PVPlacement(HadModuleRot, 240 G4ThreeVector(FCALHadModulePosX,FCAL 241 LogicalFCALHadModule, "FCALHadModule 242 243 244 245 //------------------------- 246 // Returning the mother 247 //------------------------- 248 249 return LogicalCryostat; 250 251 } 252 253