Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/lAr_calorimeter/src/FCALHadModule.cc (Version 11.3.0) and /examples/advanced/lAr_calorimeter/src/FCALHadModule.cc (Version 10.1)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //   Name of file:       FCALHadModule.cc          26 //   Name of file:       FCALHadModule.cc
 27 //   Author:             Mathieu Fontaine          27 //   Author:             Mathieu Fontaine           Rachid Mazini
 28 //                       fontainerlps.umontrea     28 //                       fontainerlps.umontreal.ca  Rachid.Mazinircern.ch
 29 //   Language:           C++                       29 //   Language:           C++
 30 //   Tested on :         g++                       30 //   Tested on :         g++
 31 //   Prerequisites:      None                      31 //   Prerequisites:      None
 32 //   Purpose:            Source file defining      32 //   Purpose:            Source file defining the geometry of HadModule 0 of the
 33 //                       FCAL.                     33 //                       FCAL.
 34 //   Developped:         10-March-2000   M.F.      34 //   Developped:         10-March-2000   M.F.
 35 //                                                 35 //
 36 //--------------------------------------------     36 //-----------------------------------------------------------------------------
 37                                                    37 
 38 #include <fstream>                                 38 #include <fstream>
 39                                                    39 
 40 #include "FCALHadModule.hh"                        40 #include "FCALHadModule.hh"
 41                                                    41 
 42 #include "FCALMaterialConsultant.hh"               42 #include "FCALMaterialConsultant.hh"
 43 #include "FCALHadModuleSD.hh"                      43 #include "FCALHadModuleSD.hh"
 44 #include "G4SDManager.hh"                          44 #include "G4SDManager.hh"
 45                                                    45 
 46 #include "G4PhysicalConstants.hh"                  46 #include "G4PhysicalConstants.hh"
 47 #include "G4SystemOfUnits.hh"                      47 #include "G4SystemOfUnits.hh"
 48 #include "G4Box.hh"                                48 #include "G4Box.hh"
 49 #include "G4Tubs.hh"                               49 #include "G4Tubs.hh"
 50 #include "G4LogicalVolume.hh"                      50 #include "G4LogicalVolume.hh"
 51 #include "G4VPhysicalVolume.hh"                    51 #include "G4VPhysicalVolume.hh"
 52 #include "G4PVPlacement.hh"                        52 #include "G4PVPlacement.hh"
 53 #include "G4SubtractionSolid.hh"                   53 #include "G4SubtractionSolid.hh"
 54                                                    54 
 55 #include "G4ThreeVector.hh"                        55 #include "G4ThreeVector.hh"
 56 #include "G4VisAttributes.hh"                      56 #include "G4VisAttributes.hh"
 57 #include "G4Colour.hh"                             57 #include "G4Colour.hh"
 58                                                    58 
 59 #include "G4ios.hh"                                59 #include "G4ios.hh"
 60                                                    60 
 61                                                    61 
 62 FCALHadModule::FCALHadModule() :                   62 FCALHadModule::FCALHadModule() :
 63   FcalHadModuleSD(0)                               63   FcalHadModuleSD(0)
 64 {                                                  64 {
 65   F2LArGapID = new G4int[2600];                    65   F2LArGapID = new G4int[2600];
 66   F2LArIX     = new G4int[2600];                   66   F2LArIX     = new G4int[2600];
 67   F2LArJY     = new G4int[2600];                   67   F2LArJY     = new G4int[2600];
 68   F2LArITile  = new G4int[2600];                   68   F2LArITile  = new G4int[2600];
 69   F2LArGapPosX = new G4double[2600];               69   F2LArGapPosX = new G4double[2600];
 70   F2LArGapPosY = new G4double[2600];               70   F2LArGapPosY = new G4double[2600];
 71 }                                                  71 }
 72                                                    72 
 73 FCALHadModule::~FCALHadModule() {                  73 FCALHadModule::~FCALHadModule() {
 74   delete [] F2LArGapID;                            74   delete [] F2LArGapID;
 75   delete [] F2LArGapPosX;                          75   delete [] F2LArGapPosX;
 76   delete [] F2LArGapPosY;                          76   delete [] F2LArGapPosY;
 77   delete [] F2LArIX;                               77   delete [] F2LArIX;
 78   delete [] F2LArJY;                               78   delete [] F2LArJY;
 79   delete [] F2LArITile;                            79   delete [] F2LArITile;
 80 }                                                  80 }
 81                                                    81 
 82                                                    82 
 83 void FCALHadModule::InitializeGeometry() {         83 void FCALHadModule::InitializeGeometry() {
 84                                                    84 
 85 #include "FCALHadModuleParameters.input"           85 #include "FCALHadModuleParameters.input"
 86                                                    86 
 87   std::ifstream File                               87   std::ifstream File
 88    ("geom_data/FCal2Electrodes.dat");              88    ("geom_data/FCal2Electrodes.dat");
 89                                                    89    
 90    if(!File)  G4cerr << "Failed to open file F     90    if(!File)  G4cerr << "Failed to open file FCal2Electrode data file" << G4endl;
 91    File.seekg(0);                                  91    File.seekg(0);
 92                                                    92 
 93    NF2LarGap = 0;                                  93    NF2LarGap = 0;
 94    while(!(File.eof())) {                          94    while(!(File.eof())) {
 95      NF2LarGap++;                                  95      NF2LarGap++;
 96      File >> F2LArGapID[NF2LarGap] >> F2LArGap     96      File >> F2LArGapID[NF2LarGap] >> F2LArGapPosX[NF2LarGap] >> F2LArGapPosY[NF2LarGap]
 97     >> F2LArIX[NF2LarGap] >>  F2LArJY[NF2LarGa     97     >> F2LArIX[NF2LarGap] >>  F2LArJY[NF2LarGap] >> F2LArITile[NF2LarGap];
 98    };                                              98    };
 99                                                    99    
100    G4cout << "*********" << " Number of Rods i    100    G4cout << "*********" << " Number of Rods in FCAL2 : " << NF2LarGap-1 << G4endl;
101 }                                                 101 }
102                                                   102 
103                                                   103 
104 G4LogicalVolume * FCALHadModule::Construct()      104 G4LogicalVolume * FCALHadModule::Construct()
105 {                                                 105 {
106   //-----------------------------                 106   //-----------------------------
107   // construction of materials                    107   // construction of materials
108   //-----------------------------                 108   //-----------------------------
109                                                   109   
110   FCALMaterialConsultant * FCALMaterials =        110   FCALMaterialConsultant * FCALMaterials = 
111     FCALMaterialConsultant::GetInstance();        111     FCALMaterialConsultant::GetInstance();
112                                                   112  
113   G4VisAttributes * ColorOfTungsten = new G4Vi    113   G4VisAttributes * ColorOfTungsten = new G4VisAttributes(G4Colour(.5,.5,.5));
114   G4VisAttributes * ColorOfCopper =new G4VisAt    114   G4VisAttributes * ColorOfCopper =new G4VisAttributes(G4Colour(0.58,0.15,0.05));
115   G4VisAttributes * ColorOfLarg = new  G4VisAt    115   G4VisAttributes * ColorOfLarg = new  G4VisAttributes(G4Colour(0.,0.,1.));
116                                                   116 
117                                                   117 
118   //----------------------------                  118   //----------------------------
119   //   Read Parameters                            119   //   Read Parameters
120   //----------------------------                  120   //----------------------------
121   InitializeGeometry();                           121   InitializeGeometry();
122                                                   122 
123                                                   123 
124   //-----------------------------------------     124   //-----------------------------------------
125   // the logical to be returned (mother)          125   // the logical to be returned (mother)
126   //-----------------------------------------     126   //-----------------------------------------
127                                                   127 
128   G4Tubs * SolidHadModule =                       128   G4Tubs * SolidHadModule =
129     new G4Tubs("HadModuleSolid", HadModuleRMin    129     new G4Tubs("HadModuleSolid", HadModuleRMin, HadModuleRMax, HadModuleLenght,
130          HadModuleStartPhi,HadModuleDPhi);        130          HadModuleStartPhi,HadModuleDPhi);
131   G4LogicalVolume * LogicalHadModule =            131   G4LogicalVolume * LogicalHadModule = 
132     new G4LogicalVolume(SolidHadModule, FCALMa    132     new G4LogicalVolume(SolidHadModule, FCALMaterials->Material("Copper"),
133       "HadModuleLogical");                        133       "HadModuleLogical");
134                                                   134  
135   LogicalHadModule->SetSmartless(FCAL2HadSmart    135   LogicalHadModule->SetSmartless(FCAL2HadSmart);
136                                                   136   
137   LogicalHadModule->SetVisAttributes(ColorOfCo    137   LogicalHadModule->SetVisAttributes(ColorOfCopper);
138   //  LogicalHadModule->SetVisAttributes(G4Vis << 138   //  LogicalHadModule->SetVisAttributes(G4VisAttributes::Invisible);
139                                                   139 
140                                                   140 
141   //-----------------------------------------     141   //-----------------------------------------
142   //  Tungsten Absorber                           142   //  Tungsten Absorber
143   //-----------------------------------------     143   //-----------------------------------------
144   G4Tubs * SolidWAbsorber =                       144   G4Tubs * SolidWAbsorber = 
145     new G4Tubs("WAbsorberSolid", WAbsorberRMin    145     new G4Tubs("WAbsorberSolid", WAbsorberRMin, WAbsorberRMax, WAbsorberLenght,
146          WAbsorberStartPhi, WAbsorberDPhi);       146          WAbsorberStartPhi, WAbsorberDPhi);      
147   G4LogicalVolume * LogicalWAbsorber =            147   G4LogicalVolume * LogicalWAbsorber = 
148     new G4LogicalVolume(SolidWAbsorber, FCALMa    148     new G4LogicalVolume(SolidWAbsorber, FCALMaterials->Material("FCAL2WFeNi"),
149       "SolidWLogical");                           149       "SolidWLogical");
150 //  G4VPhysicalVolume * PhysicalWAbsorber =       150 //  G4VPhysicalVolume * PhysicalWAbsorber =
151     new G4PVPlacement(0, G4ThreeVector(), Logi    151     new G4PVPlacement(0, G4ThreeVector(), LogicalWAbsorber, "WAbsorberPhysical",
152           LogicalHadModule, 0, 0);                152           LogicalHadModule, 0, 0);
153                                                   153 
154   LogicalWAbsorber->SetVisAttributes(ColorOfTu    154   LogicalWAbsorber->SetVisAttributes(ColorOfTungsten);
155   // LogicalWAbsorber->SetVisAttributes(G4VisA << 155   // LogicalWAbsorber->SetVisAttributes(G4VisAttributes::Invisible);
156                                                   156 
157                                                   157 
158   // -----------------                            158   // -----------------
159   //  Copper Plates                               159   //  Copper Plates
160   //------------------                            160   //------------------
161   G4Tubs * SolidCuPlate =                         161   G4Tubs * SolidCuPlate = 
162     new G4Tubs("CuPlateSolid",HadModuleRMin, H    162     new G4Tubs("CuPlateSolid",HadModuleRMin, HadModuleRMax, CuPlateLenght, 
163          HadModuleStartPhi, HadModuleDPhi);       163          HadModuleStartPhi, HadModuleDPhi);
164   G4LogicalVolume * LogicalCuPlate =              164   G4LogicalVolume * LogicalCuPlate =
165     new G4LogicalVolume(SolidCuPlate, FCALMate    165     new G4LogicalVolume(SolidCuPlate, FCALMaterials->Material("Copper"), "CuPlateLogical");
166                                                   166 
167 //  G4VPhysicalVolume * PhysicalCuPlateA =        167 //  G4VPhysicalVolume * PhysicalCuPlateA =
168     new G4PVPlacement(0, G4ThreeVector(0.,0.,C    168     new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateAPosZ), LogicalCuPlate, 
169           "CuPlateAPhysical", LogicalHadModule    169           "CuPlateAPhysical", LogicalHadModule, 0, 0);
170 //  G4VPhysicalVolume * PhysicalCuPlateB =        170 //  G4VPhysicalVolume * PhysicalCuPlateB =
171     new G4PVPlacement(0, G4ThreeVector(0.,0.,C    171     new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateBPosZ), LogicalCuPlate, 
172           "CuPlateBPhysical", LogicalHadModule    172           "CuPlateBPhysical", LogicalHadModule, 0, 0);
173                                                   173 
174   LogicalCuPlate->SetVisAttributes(ColorOfCopp    174   LogicalCuPlate->SetVisAttributes(ColorOfCopper);
175   //  LogicalCuPlate->SetVisAttributes(G4VisAt << 175   //  LogicalCuPlate->SetVisAttributes(G4VisAttributes::Invisible);
176                                                   176 
177   //------------------------------------------    177   //------------------------------------------
178   // Had Module (F2)  Main and A/B Cable Troff    178   // Had Module (F2)  Main and A/B Cable Troff 
179   //------------------------------------------    179   //------------------------------------------
180   G4Tubs * SolidF2TroffMain =                     180   G4Tubs * SolidF2TroffMain = 
181     new G4Tubs("F2TroffMainSolid", F2TroffRmin    181     new G4Tubs("F2TroffMainSolid", F2TroffRmin, F2TroffRmax, F2TroffMainLenght, 
182          F2TroffStartPhi, F2TroffDphi);           182          F2TroffStartPhi, F2TroffDphi);
183   G4LogicalVolume * LogicalF2TroffMain =          183   G4LogicalVolume * LogicalF2TroffMain =
184     new G4LogicalVolume(SolidF2TroffMain, FCAL    184     new G4LogicalVolume(SolidF2TroffMain, FCALMaterials->Material("FCAL2CuArKap"),
185       "F2TroffMainLogical");                      185       "F2TroffMainLogical");
186                                                   186   
187   G4Tubs * SolidF2TroffAB =                       187   G4Tubs * SolidF2TroffAB = 
188     new G4Tubs("F2TroffABSolid", F2TroffRmin,     188     new G4Tubs("F2TroffABSolid", F2TroffRmin, F2TroffRmax, F2TroffABLenght, 
189          F2TroffStartPhi, F2TroffDphi);           189          F2TroffStartPhi, F2TroffDphi);
190   G4LogicalVolume * LogicalF2TroffAB =            190   G4LogicalVolume * LogicalF2TroffAB =
191     new G4LogicalVolume(SolidF2TroffAB, FCALMa    191     new G4LogicalVolume(SolidF2TroffAB, FCALMaterials->Material("FCAL2CuArKap"),
192       "F2TroffABLogical");                        192       "F2TroffABLogical");
193                                                   193   
194   G4ThreeVector F2TroffMainTrans(0.,0.,0.);       194   G4ThreeVector F2TroffMainTrans(0.,0.,0.);
195   G4ThreeVector F2TroffABTrans(0.,0.,0.);         195   G4ThreeVector F2TroffABTrans(0.,0.,0.);
196   G4RotationMatrix F2TroffRot;                    196   G4RotationMatrix F2TroffRot;
197   G4int i=0;                                      197   G4int i=0;
198     for(i=0 ; i < NCableTroff ; i++)              198     for(i=0 ; i < NCableTroff ; i++)
199       {                                           199       {
200 //      G4VPhysicalVolume * PhysicalF2TroffMai    200 //      G4VPhysicalVolume * PhysicalF2TroffMain =
201   new G4PVPlacement(G4Transform3D(F2TroffRot,F    201   new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffMainTrans), LogicalF2TroffMain,
202         "F2TroffMainPhysical", LogicalWAbsorbe    202         "F2TroffMainPhysical", LogicalWAbsorber,0,i+1);
203                                                   203       
204 //      G4VPhysicalVolume * PhysicalF2TroffAB     204 //      G4VPhysicalVolume * PhysicalF2TroffAB = 
205   new G4PVPlacement(G4Transform3D(F2TroffRot,F    205   new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffABTrans), LogicalF2TroffAB, 
206         "F2TroffAPhysical", LogicalCuPlate, 0,    206         "F2TroffAPhysical", LogicalCuPlate, 0, i+1);
207                                                   207       
208       F2TroffRot.rotateZ(F2TroffRotZ);            208       F2TroffRot.rotateZ(F2TroffRotZ);
209     }                                             209     }
210                                                   210 
211   LogicalF2TroffMain->SetVisAttributes(ColorOf    211   LogicalF2TroffMain->SetVisAttributes(ColorOfCopper);
212   //  LogicalF2TroffMain->SetVisAttributes(G4V << 212   //  LogicalF2TroffMain->SetVisAttributes(G4VisAttributes::Invisible);
213   LogicalF2TroffAB->SetVisAttributes(ColorOfCo    213   LogicalF2TroffAB->SetVisAttributes(ColorOfCopper);
214   // LogicalF2TroffAB->SetVisAttributes(G4VisA << 214   // LogicalF2TroffAB->SetVisAttributes(G4VisAttributes::Invisible);
215                                                   215 
216                                                   216 
217    //----------------------                       217    //----------------------
218    //  LArg Gaps  + F2 Rod                        218    //  LArg Gaps  + F2 Rod
219    //----------------------                       219    //----------------------
220    G4Tubs * SolidF2LArGap =                       220    G4Tubs * SolidF2LArGap = 
221      new G4Tubs("F2LArGapSolid", F2LArGapRmin,    221      new G4Tubs("F2LArGapSolid", F2LArGapRmin, F2LArGapRmax, F2LArGapLenght, 
222                  F2LArGapStartPhi, F2LArGapDph    222                  F2LArGapStartPhi, F2LArGapDphi);
223    G4LogicalVolume * LogicalF2LArGap =            223    G4LogicalVolume * LogicalF2LArGap = 
224       new G4LogicalVolume(SolidF2LArGap, FCALM    224       new G4LogicalVolume(SolidF2LArGap, FCALMaterials->Material("LiquidArgon"),
225                           "F2LArGapLogical");     225                           "F2LArGapLogical");
226                                                   226 
227      LogicalF2LArGap->SetVisAttributes(ColorOf    227      LogicalF2LArGap->SetVisAttributes(ColorOfLarg);
228    // LogicalF2LArGap->SetVisAttributes(G4VisA << 228    // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible);
229                                                   229 
230     G4Tubs * SolidF2Rod =                         230     G4Tubs * SolidF2Rod =
231       new G4Tubs("F2RodSolid", F2RodRmin, F2Ro    231       new G4Tubs("F2RodSolid", F2RodRmin, F2RodRmax, F2RodLenght, F2RodStartPhi, F2RodDphi);
232    G4LogicalVolume * LogicalF2Rod =               232    G4LogicalVolume * LogicalF2Rod = 
233       new G4LogicalVolume(SolidF2Rod, FCALMate    233       new G4LogicalVolume(SolidF2Rod, FCALMaterials->Material("Tungsten"),"F2RodLogical");
234 //    G4VPhysicalVolume * PhysicalF2Rod =         234 //    G4VPhysicalVolume * PhysicalF2Rod = 
235       new G4PVPlacement(0,G4ThreeVector(),Logi    235       new G4PVPlacement(0,G4ThreeVector(),LogicalF2Rod,"F2RodPhysical",LogicalF2LArGap,0, 0);
236                                                   236 
237     LogicalF2Rod->SetVisAttributes(ColorOfTung    237     LogicalF2Rod->SetVisAttributes(ColorOfTungsten);
238     // LogicalF2Rod->SetVisAttributes(G4VisAtt << 238     // LogicalF2Rod->SetVisAttributes(G4VisAttributes::Invisible);
239                                                   239 
240     //---------------------------------           240     //---------------------------------
241     // Electrod (Rod + LArg) placement            241     // Electrod (Rod + LArg) placement
242     //---------------------------------           242     //---------------------------------
243     for(i=1; i < NF2LarGap; i++){                 243     for(i=1; i < NF2LarGap; i++){ 
244 //      G4VPhysicalVolume * PhysicalF2LArGap =    244 //      G4VPhysicalVolume * PhysicalF2LArGap =
245   new G4PVPlacement(0,G4ThreeVector(F2LArGapPo    245   new G4PVPlacement(0,G4ThreeVector(F2LArGapPosX[i]*cm,F2LArGapPosY[i]*cm,0.*cm),
246         LogicalF2LArGap,"F2LArGapPhysical",       246         LogicalF2LArGap,"F2LArGapPhysical",
247         LogicalHadModule, 0, i);                  247         LogicalHadModule, 0, i); 
248     };                                            248     };
249                                                   249 
250     LogicalF2LArGap->SetVisAttributes(ColorOfL    250     LogicalF2LArGap->SetVisAttributes(ColorOfLarg);
251     // LogicalF2LArGap->SetVisAttributes(G4Vis << 251     // LogicalF2LArGap->SetVisAttributes(G4VisAttributes::Invisible);
252                                                   252 
253                                                   253 
254     // Sensitive Volumes                          254     // Sensitive Volumes
255     G4SDManager* SDman = G4SDManager::GetSDMpo    255     G4SDManager* SDman = G4SDManager::GetSDMpointer();
256                                                   256   
257     if(!FcalHadModuleSD)                          257     if(!FcalHadModuleSD)
258       {                                           258       {
259   FcalHadModuleSD = new FCALHadModuleSD("FCALT    259   FcalHadModuleSD = new FCALHadModuleSD("FCALTB/HadModuleSD");
260   SDman->AddNewDetector(FcalHadModuleSD);         260   SDman->AddNewDetector(FcalHadModuleSD);
261       }                                           261       }
262     LogicalF2LArGap->SetSensitiveDetector(Fcal    262     LogicalF2LArGap->SetSensitiveDetector(FcalHadModuleSD);
263                                                   263 
264                                                   264 
265    return LogicalHadModule;                       265    return LogicalHadModule;
266                                                   266 
267 }                                                 267 }
268                                                   268 
269 G4int FCALHadModule::GetF2TileID(G4int TileID)    269 G4int FCALHadModule::GetF2TileID(G4int TileID) 
270 {                                                 270 {
271   return F2LArITile[TileID];                      271   return F2LArITile[TileID];
272 }                                                 272 }
273                                                   273 
274                                                   274 
275                                                   275 
276                                                   276