All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Macros | Functions | Variables
generate_icarus_geometry_splitwire.pl File Reference

Go to the source code of this file.

Macros

#define the   racetrack geometrical parameters
 

Functions

Math::BigFloat precision (-16)
 
 GetOptions ("help|h"=>\$help,"suffix|s:s"=>\$suffix,"output|o:s"=>\$output,"concrete|c:s"=>\$thickness_over,"wires|w:s"=>\$wires,"vetocrt|v:s"=>\$crt)
 
 if (defined $help)
 
 if (!defined $suffix)
 
 gen_Define ()
 
 gen_Materials ()
 
 gen_RaceTracks ()
 
 gen_TPC ()
 
 gen_PMT ()
 
 gen_Mech_Structure ()
 
 gen_Cryostat ()
 
 if ($crt_on==1)
 
 gen_Enclosure ()
 
 gen_World ()
 
 write_fragments ()
 
sub usage ()
 
sub define_RaceTrack ()
 
 push (@gdmlFiles, $RACETRACK)
 
 open (RACETRACK) or die("Could not open file $RACETRACK for writing")
 
 for ($it=0;$it< $RaceTrack_number;$it++)
 
 open (PMT) or die("Could not open file $PMT for writing")
 
 open (MECH) or die("Could not open file $MECH for writing")
 
sub gen_CRT ()
 

Variables

 else
 
 $inch = 2.54
 
 $YWirePitch = 0.3
 
 $UWirePitch = 0.3
 
 $VWirePitch = 0.3
 
 $UAngle = 60
 
 $VAngle = 60
 
 $SinUAngle = sin( deg2rad($UAngle) )
 
 $CosUAngle = cos( deg2rad($UAngle) )
 
 $TanUAngle = tan( deg2rad($UAngle) )
 
 $SinVAngle = sin( deg2rad($VAngle) )
 
 $CosVAngle = cos( deg2rad($VAngle) )
 
 $TanVAngle = tan( deg2rad($VAngle) )
 
 $UWire_ypitch = $UWirePitch / $CosUAngle
 
 $UWire_zpitch = $UWirePitch / $SinUAngle
 
 $VWire_ypitch = $VWirePitch / $CosVAngle
 
 $VWire_zpitch = $VWirePitch / $SinVAngle
 
 $TPCWireThickness = 0.015
 
 $TPCWireRadius = $TPCWireThickness /2
 
 $CommonWireLength = (1056 * $YWirePitch) / $SinUAngle
 
 $CPA_x = 0.15
 
 $WirePlaneSpacing = 0.3
 
 $MaxDrift = 148.2
 
 $SpaceWirePlToWall = 31.8
 
 $SpaceWirePlToWirePl = 85
 
 $SpaceTPCToFloor = 36
 
 $SpaceTPCToTopLAr = 29.5
 
 $UpstreamLArPadding = 90.0
 
 $DownstreamLArPadding = 90.0
 
 $CPA_epsi = 0.001
 
 $CPA_y = 320
 
 $CPA_z = 1800
 
 $CPAStrip_x = $CPA_x-$CPA_epsi
 
 $CPAStrip_y = 2.1
 
 $CPAStrip_pitch = 5
 
 $TPCActive_x = $MaxDrift
 
 $TPCActive_y = $CommonWireLength * $SinUAngle + 0.02
 
 $TPCActive_z = $CommonWireLength * $CosUAngle + (4640 - 1) * $UWire_zpitch - 0.000000000002
 
 $TPCActiveHalf_z = $TPCActive_z/2
 
 $TPCWirePlane_x = 2*$TPCWireThickness
 
 $TPCWirePlane_y = $TPCActive_y
 
 $TPCWirePlane_z = $TPCActive_z
 
 $TPCWirePlaneHalf_z = $TPCActiveHalf_z
 
 $TPC_x = $MaxDrift+ 6*$TPCWireThickness + 3*$WirePlaneSpacing + $CPA_x
 
 $DeltaLUCorner = $UWirePitch/($SinUAngle*$CosUAngle)
 
 $DeltaLVCorner = $VWirePitch/($SinVAngle*$CosVAngle)
 
 $LAr_x
 
 $LAr_y
 
 $LAr_z
 
 $LArHalf_z = $TPCActiveHalf_z + $UpstreamLArPadding
 
 $TPC_y = $LAr_y
 
 $TPC_z = $LAr_z
 
 $TPCHalf_z = $LArHalf_z
 
 $AlumThickness = 19
 
 $GaseousAr_y = 6.5
 
 $CryoDist = 20
 
 $Cryostat_x = $LAr_x + 2*$AlumThickness
 
 $Cryostat_y = $TPC_y + $GaseousAr_y + 2*$AlumThickness
 
 $Cryostat_z = $TPC_z + 2*$AlumThickness
 
 $LAr_x_orig = 2*$LAr_x + 2*$AlumThickness + $CryoDist
 
 $Cryostat_x_orig = $LAr_x_orig + 2*$AlumThickness
 
 $TPCinCryo_x [0] = - $TPC_x/2 - $CPA_x/2
 
 $posCat_x = 0
 
 $TPCinCryo_y = -$GaseousAr_y/2
 
 $TPCinCryo_z = 0.
 
 $TPCinCryo_zneg = (-$TPCHalf_z/2)
 
 $TPCinCryo_zpos = ( $TPCHalf_z/2)
 
 $posTPCActive0_x = 0.570000000000007
 
 $posTPCActive_y = 0
 
 $posTPCActive_z = $UpstreamLArPadding/2
 
 $struct_width = 10.
 
 $ext_struct_x = $struct_width
 
 $ext_struct_y = 341.8
 
 $ext_struct_z = 199.532
 
 $int_struct_x = $ext_struct_x
 
 $int_struct_y = $ext_struct_y - 2*$struct_width
 
 $int_struct_z = $ext_struct_z - 2*$struct_width
 
 $NumberPMT = 90
 
 $PMTthickness = 0.5
 
 $PMTradius = 4*$inch
 
 $PMTradiusOuter = 4*$inch
 
 $PMTradiusInner = $PMTradiusOuter - $PMTthickness
 
 $PMTGrid_offset = 2
 
 $PMTx = 0.557*$PMTradiusOuter
 
 $PMTtubeRmax = 4.225
 
 $PMTtubeRmin = 3.725
 
 $PMTtube_x = 2*$PMTtubeRmax
 
 $PMTPlane_x = 2*$PMTradius+$PMTGrid_offset+$PMTtube_x
 
 $PMTPlane_y = $ext_struct_y + 6.
 
 $PMTPlane_z = 9*$ext_struct_z + 2*$struct_width + 6.
 
 $PMTWiresOffset = 0.5
 
 $FoamPadding = 60
 
 $WarmVesselThickness = 27.4
 
 $WarmVesselThickness_x = 21.8
 
 $SpaceTop = 22.4
 
 $SpaceUpstream = 65.55
 
 $SpaceDownstream = 15.55
 
 $SpaceBottom = 18.0
 
 $ThermIns_x = 2*$Cryostat_x+2*$FoamPadding + 3*$CryoDist
 
 $ThermIns_y = $Cryostat_y+2*$FoamPadding+$SpaceTop+$SpaceBottom
 
 $ThermIns_z = $Cryostat_z+2*$FoamPadding+$SpaceUpstream+$SpaceDownstream
 
 $ThermInsInDetEncl_x = 0
 
 $ThermInsInDetEncl_z = 0
 
 $WarmVessel_x = $ThermIns_x+2*$WarmVesselThickness_x
 
 $WarmVessel_y = $ThermIns_y+2*$WarmVesselThickness
 
 $WarmVessel_z = $ThermIns_z+2*$WarmVesselThickness
 
 $WarmVesselInDetEncl_x = 0
 
 $WarmVesselInDetEncl_z = 0
 
 $Cryo1InWarmVessel_x = -$Cryostat_x/2 - $CryoDist
 
 $Cryo2InWarmVessel_x = $Cryostat_x/2 + $CryoDist
 
 $CryoInWarmVessel_z = 0
 
 $OriginXSet = 0
 
 $OriginYSet = 0
 
 $OriginZSet = 0
 
 $Building_y = 1040.0
 
 $ExpHall_y = 1170.0 + 80
 
 $Hall_x = 1890.0
 
 $Hall_y = $Building_y + $ExpHall_y
 
 $Hall_z = 3870.0
 
 $HallWallThicnekss = 60
 
 $Overburden_yDefault = 300
 
 $Overburden_x = 1830.0
 
 $Overburden_y = $concrete_on
 
 $Overburden_z = 3810.0
 
 $posOverburden_x = $OriginXSet
 
 $posOverburden_z = $OriginZSet
 
 $ExpHall_VertSpace = $ExpHall_y - $HallWallThicnekss - $Overburden_y/3
 
 $DetEnc_pad = 0.1
 
 $DetEnc_x = 1245
 
 $DetEnc_y = $ExpHall_VertSpace - 2*$DetEnc_pad
 
 $DetEnc_z = 3200
 
 $WarmVessel_FootHeight = 6.0
 
 $WarmVessel_FloorSpace = 10.16
 
 $WarmVessel_CenterToFloor = $WarmVessel_FootHeight + $WarmVessel_FloorSpace + $WarmVessel_y/2
 
 $World_x = 1e4
 
 $World_y = 1e4
 
 $World_z = 1e4
 
 $CRTSHELL_WV_OFFSET_Y = 15
 
 $CRTSHELL_WV_OFFSET_Z = 164.5865
 
 $Ground_y = 780.0
 
 $DetEncl_yOffset = $Ground_y - $Overburden_y/3 - $ExpHall_VertSpace/2 -$DetEnc_pad
 
 $ThermInsInDetEncl_y = -1*$DetEncl_yOffset
 
 $WarmVesselInDetEncl_y = $ThermInsInDetEncl_y
 
 $CryoInWarmVessel_y = $WarmVesselInDetEncl_y -$WarmVessel_y/2 + $FoamPadding + $WarmVesselThickness + $Cryostat_y/2
 
 exit
 
sub gen_RaceTracks
 
 $RACETRACK = "icarus_racetracks" . $suffix . ".gdml"
 
print RACETRACK<< EOF;<?xml
version='1.0'?>< gdml > EOF 
$RTy_T = ($RaceTrack_ly - $RaceTrack_thickness )/2. + $RT_epsilon
 
 $RTy_B =-($RaceTrack_ly - $RaceTrack_thickness )/2. + $RT_epsilon
 
 $RTx_T = ($TPC_x - $RaceTrack_pitch -$RaceTrack_width )/2.
 
 $RTx_B = $RTx_T
 
 $RTx_U = $RTx_T
 
 $RTz_U = -($RaceTrackT_length - $RaceTrack_thickness)/2. - $RT_epsilon + 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2
 
 $RTx_D = $RTx_T
 
 $RTz_D = -$RTz_U
 
 $RTz_T = 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2
 
 $RTz_B = 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2
 
print RACETRACK<< EOF;< define >
< positionname="posRaceTrackTInTPC"unit="cm"x="$RTx_T"y="$RTy_T"z="$RTz_T"/>
< positionname="posRaceTrackBInTPC"unit="cm"x="$RTx_B"y="$RTy_B"z="$RTz_B"/>
< positionname="posRaceTrackUInTPC"unit="cm"x="$RTx_U"y="0"z="$RTz_U"/>
< positionname="posRaceTrackDInTPC"unit="cm"x="$RTx_D"y="0"z="$RTz_D"/>
</define >
<!--+++++++++++++++++++RACETRACKSolids+++++++++++++++++++-->
EOF print RACETRACK<< EOF;
< solids >< boxname="RaceTrackTVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackT_length"lunit="cm"/>
< boxname="RaceTrackBVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackB_length"lunit="cm"/>
< boxname="RaceTrackUVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackU_length"lunit="cm"/>
< tubename="RaceTrackTTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackTTube_length"deltaphi="360"aunit="deg"lunit="cm"/>
< tubename="RaceTrackBTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackBTube_length"deltaphi="360"aunit="deg"lunit="cm"/>
< tubename="RaceTrackUTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackUTube_length"deltaphi="360"aunit="deg"lunit="cm"/>
</solids > EOF print RACETRACK
<< EOF;< structure >
<!--+++++++++++++++++RACETRACKLogicalVolumes++++++++++++++++++++-->
< volumename="volRaceTrackTTubeVolume">
< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>
< solidrefref="RaceTrackTTubeVolume"/>
</volume >< volumename="volRaceTrackBTubeVolume">
< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>
< solidrefref="RaceTrackBTubeVolume"/>
</volume >< volumename="volRaceTrackUTubeVolume">
< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>
< solidrefref="RaceTrackUTubeVolume"/>
</volume > EOF print RACETRACK
<< EOF;
<!--+++++++++++++++++RACETRACK
Top Volume++++++++++++++++++++-->
< volumename="volRaceTrackTVolume">
< materialrefref="LAr"/>
< solidrefref="RaceTrackTVolume"/>
EOF 
$xTpos =-($RaceTrack_width - $RaceTrack_pitch - $RT_epsilon )/2.
 
print RACETRACK<< EOF;</volume >
EOF print RACETRACK<< EOF;
<!--+++++++++++++++++RACETRACK
end structure+++++++++++++++++++-->
</structure > EOF print
RACETRACK<< EOF;</gdml > EOF
sub 
gen_PMT
 
 $PMT = ">" . $PMT
 
print PMT<< EOF;<?xml version='1.0'?>
< gdml > EOF print PMT<< EOF;
<!--+++++++++++++++++++PMT
Solids++++++++++++++++++++++-->
EOF print PMT<< EOF;< solids >
< spherename="PMTVolume"rmin="$PMTradiusInner"rmax="$PMTradiusOuter"deltaphi="360"deltatheta="90"aunit="deg"lunit="cm"/>
< spherename="PMTPassSphere"rmin="$PMTradiusInner"rmax="$PMTradiusOuter"deltaphi="360"deltatheta="90"aunit="deg"lunit="cm"/>
< tubename="PMTPassTube"rmax="$PMTtubeRmax"rmin="$PMTtubeRmin"z="$PMTtube_x"deltaphi="360"aunit="deg"lunit="cm"/>
< unionname="PMTPassVolume">
< firstref="PMTPassSphere"/>
< secondref="PMTPassTube"/>
< positionrefref="PMTtube"/>
< rotationrefref="rMinus90AboutZ"/>
</union ></solids > EOF print
PMT<< EOF;< structure >
<!--+++++++++++++++++PMTLogicalVolumes++++++++++++++++++++-->
< volumename="volOpDetSensitive">
< materialrefref="LAr"/>
< solidrefref="PMTVolume"/>
</volume >< volumename="volNotOpDetSensitive">
< materialrefref="Glass"/>
< solidrefref="PMTPassVolume"/>
</volume ></structure > EOF
print PMT<< EOF;</gdml > EOF
sub 
gen_Mech_Structure
 
 $MECH = ">" . $MECH
 

Macro Definition Documentation

#define the   racetrack geometrical parameters

Function Documentation

sub define_RaceTrack ( )

Definition at line 1511 of file generate_icarus_geometry_splitwire.pl.

1512 {
1513 # from "Design, construction and tests of the ICARUS T600 detector",
1514 # ICARUS Collaboration (S. Amerio et al.). Jul 2004. 82 pp.
1515 # Nucl.Instrum.Meth. A527 (2004) 329-410
1516 #
1517 # 4 parts: Top (T) Bottom (B) Upstream (U) Downstream (D)
1518  $RT_epsilon = .0001 ;# extra safety space;
1519  $RaceTrack_d = 3.4; # cm race track tube diameter
1520  $RaceTrack_TubeThick = 0.08; #cm race track tube thick
1521 # $RaceTrack_lz = 1810.0; #cm length of race track structure
1522  $RaceTrack_lz = 905; #cm length of race track structure (half to accommodate for split wire TPC)
1523 # $RaceTrack_ly = 320.0 - 2*$RT_epsilon; #cm length of race track tubes
1524  $RaceTrack_ly = 323.6201 ; #cm height of race track structure (modified to be external to TPCActive_y
1525  $RaceTrack_number = 29; #number of race tracks
1526  $RaceTrack_pitch = 4.96; #distance between each race track tube
1527  $RaceTrack_ExternalRadius = $RaceTrack_d * 0.5; # cm external race track tube radius
1528  $RaceTrack_InnerRadius = $RaceTrack_d * 0.5-$RaceTrack_TubeThick; # cm internal race track tube radius
1529  $RaceTrack_width = ($RaceTrack_pitch +$RT_epsilon) * $RaceTrack_number;
1530  $RaceTrackT_length = $RaceTrack_lz + $RT_epsilon; # guess about Horizontal length
1531  $RaceTrackTTube_length = $RaceTrackT_length - $RT_epsilon; # guess about Horizontal length
1532  $RaceTrackB_length = $RaceTrack_lz + $RT_epsilon; # guess about Horizontal length
1533  $RaceTrackBTube_length = $RaceTrackB_length - $RT_epsilon; # guess about Horizontal length
1534  $RaceTrackU_length = $RaceTrack_ly - 2* $RaceTrack_d; # guess of vertical length
1535  $RaceTrackUTube_length = $RaceTrackU_length - $RT_epsilon; # guess of vertical length
1536  $RaceTrack_thickness=$RaceTrack_d+2*$RT_epsilon; #
1537 }
ClusterModuleLabel join with tracks
process_name use argoneut_mc_hitfinder track
BEGIN_PROLOG TPC
double distance(geo::Point_t const &point, CathodeDesc_t const &cathode)
Returns the distance of a point from the cathode.
for ( )

Definition at line 1671 of file generate_icarus_geometry_splitwire.pl.

1672 {
1673  print RACETRACK <<EOF;
1674  <physvol>
1675  <volumeref ref="volRaceTrackTTubeVolume"/>
1676  <position name="posRTkTTube$it" unit="cm" x="$xTpos" y="0" z="0" />
1677  <rotationref ref="rIdentity" />
1678  </physvol>
1679 EOF
1680  $xTpos+= $RaceTrack_pitch ;
1681 }
process_name opflash particleana ie ie ie z
process_name opflash particleana ie x
do one_file $F done echo for F in find $TOP name CMakeLists txt print
print RACETRACK<< EOF;< define >< positionname="posRaceTrackTInTPC"unit="cm"x="$RTx_T"y="$RTy_T"z="$RTz_T"/>< positionname="posRaceTrackBInTPC"unit="cm"x="$RTx_B"y="$RTy_B"z="$RTz_B"/>< positionname="posRaceTrackUInTPC"unit="cm"x="$RTx_U"y="0"z="$RTz_U"/>< positionname="posRaceTrackDInTPC"unit="cm"x="$RTx_D"y="0"z="$RTz_D"/></define ><!--+++++++++++++++++++RACETRACKSolids+++++++++++++++++++--> EOF print RACETRACK<< EOF;< solids >< boxname="RaceTrackTVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackT_length"lunit="cm"/>< boxname="RaceTrackBVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackB_length"lunit="cm"/>< boxname="RaceTrackUVolume"x="$RaceTrack_width"y="$RaceTrack_thickness"z="$RaceTrackU_length"lunit="cm"/>< tubename="RaceTrackTTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackTTube_length"deltaphi="360"aunit="deg"lunit="cm"/>< tubename="RaceTrackBTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackBTube_length"deltaphi="360"aunit="deg"lunit="cm"/>< tubename="RaceTrackUTubeVolume"rmax="$RaceTrack_ExternalRadius"rmin="$RaceTrack_InnerRadius"z="$RaceTrackUTube_length"deltaphi="360"aunit="deg"lunit="cm"/></solids > EOF print RACETRACK<< EOF;< structure ><!--+++++++++++++++++RACETRACKLogicalVolumes++++++++++++++++++++-->< volumename="volRaceTrackTTubeVolume">< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>< solidrefref="RaceTrackTTubeVolume"/></volume >< volumename="volRaceTrackBTubeVolume">< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>< solidrefref="RaceTrackBTubeVolume"/></volume >< volumename="volRaceTrackUTubeVolume">< materialrefref="STEEL_STAINLESS_Fe7Cr2Ni"/>< solidrefref="RaceTrackUTubeVolume"/></volume > EOF print RACETRACK<< EOF;<!--+++++++++++++++++RACETRACK Top Volume++++++++++++++++++++-->< volumename="volRaceTrackTVolume">< materialrefref="LAr"/>< solidrefref="RaceTrackTVolume"/> EOF $xTpos
process_name opflash particleana ie ie y
then echo fcl name
sub gen_CRT ( )

Definition at line 2153 of file generate_icarus_geometry_splitwire.pl.

2154 {
2155 # Create the CRT fragment file name,
2156 # add file to list of output GDML fragments,
2157 # and open it
2158 
2159 # using a python script to generate the CRT geometry
2160  $CRTPYTHON="gen_crt_frags.py";
2161  my $ret=`python $CRTPYTHON `;
2162 
2163 
2164  $CRT = "icarus_crt" . $suffix . ".gdml";
2165  push (@gdmlFiles, $CRT);
2166 # expecting the python script to generate a file "icarus_crt_test.gdml"
2167 # $CRT = ">" . $CRT;
2168 # open(CRT) or die("Could not open file $CRT for writing");
2169 
2170 
2171 # The standard XML prefix and starting the gdml
2172 # print CRT <<EOF;
2173 #<?xml version='1.0'?>
2174 #<gdml>
2175 #EOF
2176 
2177 
2178 close(CRT);
2179 }
my($xml, $fcl, $workdir, $check, $merge)
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
push(@gdmlFiles, $RACETRACK)
sub gen_Cryostat ( )

Definition at line 1139 of file generate_ICARUS.pl.

1140 {
1141 
1142 # Create the cryostat fragment file name,
1143 # add file to list of output GDML fragments,
1144 # and open it
1145  $CRYO = "dune_10kT_Cryostat" . $suffix . ".gdml";
1146  push (@gdmlFiles, $CRYO);
1147  $CRYO = ">" . $CRYO;
1148  open(CRYO) or die("Could not open file $CRYO for writing");
1149 
1150 
1151 # The standard XML prefix and starting the gdml
1152  print CRYO <<EOF;
1153 <?xml version='1.0'?>
1154 <gdml>
1155 EOF
1156 
1157 
1158 # All the cryostat solids.
1159 print CRYO <<EOF;
1160 <solids>
1161 
1162  <box name="Cryostat" lunit="cm"
1163  x="$Cryostat_x"
1164  y="$Cryostat_y"
1165  z="$Cryostat_z"/>
1166  <box name="ArgonInterior" lunit="cm"
1167  x="$LAr_x"
1168  y="$LAr_y"
1169  z="$LAr_z"/>
1170  <box name="GaseousArgon" lunit="cm"
1171  x="$LAr_x"
1172  y="$GaseousAr_y"
1173  z="$LAr_z"/>
1174  <subtraction name="SteelShell">
1175  <first ref="Cryostat"/>
1176  <second ref="ArgonInterior"/>
1177  </subtraction>
1178 
1179  <box name="Cathode" lunit="cm"
1180  x="$CPA_x"
1181  y="$TPC_y"
1182  z="$TPC_z"/>
1183 
1184 </solids>
1185 EOF
1186 
1187 # Cryostat structure
1188 print CRYO <<EOF;
1189 <structure>
1190  <volume name="volSteelShell">
1191  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1192  <solidref ref="SteelShell" />
1193  </volume>
1194  <volume name="volGaseousArgon">
1195  <materialref ref="ArGas"/>
1196  <solidref ref="GaseousArgon"/>
1197  </volume>
1198 
1199  <volume name="volCathode">
1200  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1201  <solidref ref="Cathode" />
1202  </volume>
1203 
1204 
1205  <volume name="volCryostat">
1206  <materialref ref="LAr" />
1207  <solidref ref="Cryostat" />
1208  <physvol>
1209  <volumeref ref="volGaseousArgon"/>
1210  <position name="posGaseousArgon" unit="cm" x="0" y="$LAr_y/2-$GaseousAr_y/2" z="0"/>
1211  </physvol>
1212  <physvol>
1213  <volumeref ref="volSteelShell"/>
1214  <position name="posSteelShell" unit="cm" x="0" y="0" z="0"/>
1215  </physvol>
1216 
1217  <physvol>
1218  <volumeref ref="volTPC"/>
1219  <positionref ref="posTPC0inCryo"/>
1220  <rotationref ref="rIdentity"/>
1221  </physvol>
1222  <physvol>
1223  <volumeref ref="volCathode" />
1224  <positionref ref="posRightCathode"/>
1225  </physvol>
1226  <physvol>
1227  <volumeref ref="volTPC"/>
1228  <positionref ref="posTPC1inCryo"/>
1229  <rotationref ref="rPlus180AboutY"/>
1230  </physvol>
1231 
1232  <physvol>
1233  <volumeref ref="volTPC"/>
1234  <positionref ref="posTPC2inCryo"/>
1235  <rotationref ref="rIdentity"/>
1236  </physvol>
1237  <physvol>
1238  <volumeref ref="volCathode" />
1239  <positionref ref="posLeftCathode"/>
1240  </physvol>
1241  <physvol>
1242  <volumeref ref="volTPC"/>
1243  <positionref ref="posTPC3inCryo"/>
1244  <rotationref ref="rPlus180AboutY"/>
1245  </physvol>
1246 
1247 EOF
1248 
1249 
1250 
1251 print CRYO <<EOF;
1252  </volume>
1253 </structure>
1254 </gdml>
1255 EOF
1256 
1257 close(CRYO);
1258 }
process_name opflash particleana ie ie ie z
process_name opflash particleana ie x
process_name can override from command line with o or output proton mvapid_weights muon_all_BDT weights xml
Definition: runPID.fcl:28
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
then echo fcl name
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_Define ( )

Definition at line 454 of file generate_icarus_geometry_splitwire.pl.

455 {
456 
457 # Create the <define> fragment file name,
458 # add file to list of fragments,
459 # and open it
460  $DEF = "icarus_Def" . $suffix . ".gdml";
461  push (@gdmlFiles, $DEF);
462  $DEF = ">" . $DEF;
463  open(DEF) or die("Could not open file $DEF for writing");
464 
465 
466 print DEF <<EOF;
467 <?xml version='1.0'?>
468 <gdml>
469 <define>
470 
471 <!--
472 -->
473  <position name="PMTtube" unit="cm" x="0" y="0" z="@{[1.5*$PMTtube_x]}"/>
474  <position name="posActiveInTPC0" unit="cm" x="$posTPCActive0_x" y="$posTPCActive_y" z="$posTPCActive_z"/>
475  <position name="posTPC00inCryo" unit="cm" x="$TPCinCryo_x[0]" y="$TPCinCryo_y" z="$TPCinCryo_zneg" />
476  <position name="posTPC01inCryo" unit="cm" x="$TPCinCryo_x[0]" y="$TPCinCryo_y" z="$TPCinCryo_zpos" />
477  <position name="posTPC10inCryo" unit="cm" x="$TPCinCryo_x[1]" y="$TPCinCryo_y" z="$TPCinCryo_zneg" />
478  <position name="posTPC11inCryo" unit="cm" x="$TPCinCryo_x[1]" y="$TPCinCryo_y" z="$TPCinCryo_zpos" />
479  <position name="posCathode" unit="cm" x="$posCat_x" y="$TPCinCryo_y" z="$TPCinCryo_z" />
480  <position name="posCryo1InWarmVessel" unit="cm" x="$Cryo1InWarmVessel_x" y="$CryoInWarmVessel_y" z="$CryoInWarmVessel_z" />
481  <position name="posCryo2InWarmVessel" unit="cm" x="$Cryo2InWarmVessel_x" y="$CryoInWarmVessel_y" z="$CryoInWarmVessel_z" />
482  <position name="posDetEncInWorld" unit="cm" x="$OriginXSet" y="$DetEncl_yOffset" z="$OriginZSet"/>
483  <position name="posCenter" unit="cm" x="0" y="0" z="0"/>
484  <position name="posThermInsInDetEncl" unit="cm" x="$ThermInsInDetEncl_x" y="$ThermInsInDetEncl_y" z="$ThermInsInDetEncl_z"/>
485  <position name="posWarmVesselInDetEncl" unit="cm" x="$WarmVesselInDetEncl_x" y="$WarmVesselInDetEncl_y" z="$WarmVesselInDetEncl_z"/>
486  <position name="posCRTShellInDetEncl" unit="cm" x="0" y="$CRTSHELL_WV_OFFSET_Y" z="$CRTSHELL_WV_OFFSET_Z"/>
487  <position name="posBuildingInWorld" unit="cm" x="0" y="@{[$Ground_y + $Building_y/2]}" z="0"/>
488  <position name="posExpHallInWorld" unit="cm" x="0" y="@{[$Ground_y - $ExpHall_y/2 ]}" z="0"/>
489  <rotation name="rPlus90AboutZPlus90AboutY" unit="deg" x="0" y="90" z="90"/>
490  <rotation name="rPlus90AboutX" unit="deg" x="90" y="0" z="0"/>
491  <rotation name="rMinus90AboutX" unit="deg" x="-90" y="0" z="0"/>
492  <rotation name="rPlus90AboutY" unit="deg" x="0" y="90" z="0"/>
493  <rotation name="rPlus90AboutZ" unit="deg" x="0" y="0" z="90"/>
494  <rotation name="rMinus90AboutZ" unit="deg" x="0" y="0" z="-90"/>
495  <rotation name="rMinus90AboutY" unit="deg" x="0" y="270" z="0"/>
496  <rotation name="rMinus90AboutYMinus90AboutX" unit="deg" x="270" y="270" z="0"/>
497  <rotation name="rPlus90VAngleAboutX" unit="deg" x="@{[90-$VAngle]}" y="0" z="0"/>
498  <rotation name="rPlus90UAngleAboutX" unit="deg" x="@{[90+$UAngle]}" y="0" z="0"/>
499  <rotation name="rPlus180AboutX" unit="deg" x="180" y="0" z="0"/>
500  <rotation name="rPlus180AboutY" unit="deg" x="0" y="180" z="0"/>
501  <rotation name="rPlus180AboutZ" unit="deg" x="0" y="0" z="180"/>
502  <rotation name="rPlus180AboutXZ" unit="deg" x="180" y="0" z="180"/>
503  <rotation name="rIdentity" unit="deg" x="0" y="0" z="0"/>
504  <rotation name="rPlusUAngleAboutX" unit="deg" x="$UAngle" y="0" z="0"/>
505  <rotation name="rMinusVAngleAboutX" unit="deg" x="300" y="0" z="0"/>
506 </define>
507 </gdml>
508 EOF
509  close (DEF);
510 }
process_name opflash particleana ie ie ie z
process_name opflash particleana ie x
process_name can override from command line with o or output proton mvapid_weights muon_all_BDT weights xml
Definition: runPID.fcl:28
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
then echo fcl name
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_Enclosure ( )

Definition at line 2192 of file generate_icarus_geometry_splitwire.pl.

2193 {
2194 
2195 # Create the detector enclosure fragment file name,
2196 # add file to list of output GDML fragments,
2197 # and open it
2198  $ENCL = "icarus_DetEnclosure" . $suffix . ".gdml";
2199  push (@gdmlFiles, $ENCL);
2200  $ENCL = ">" . $ENCL;
2201  open(ENCL) or die("Could not open file $ENCL for writing");
2202 
2203 
2204 # The standard XML prefix and starting the gdml
2205  print ENCL <<EOF;
2206 <?xml version='1.0'?>
2207 <gdml>
2208 EOF
2209 
2210 # All the detector enclosure solids.
2211 print ENCL <<EOF;
2212 <solids>
2213 
2214  <box name="DetEnclosure" lunit="cm"
2215  x="$DetEnc_x"
2216  y="$DetEnc_y"
2217  z="$DetEnc_z"/>
2218 
2219  <box name="ThermIns" lunit="cm"
2220  x="$ThermIns_x"
2221  y="$ThermIns_y"
2222  z="$ThermIns_z"/>
2223 
2224  <box name="WarmVessel" lunit="cm"
2225  x="$WarmVessel_x"
2226  y="$WarmVessel_y"
2227  z="$WarmVessel_z"/>
2228 
2229  <box name="ThermInsInterior" lunit="cm"
2230  x="@{[$ThermIns_x - 2*$FoamPadding]}"
2231  y="@{[$ThermIns_y - 2*$FoamPadding]}"
2232  z="@{[$ThermIns_z - 2*$FoamPadding]}"/>
2233 
2234  <box name="WarmVesselInterior" lunit="cm"
2235  x="@{[$WarmVessel_x - 2*$WarmVesselThickness_x]}"
2236  y="@{[$WarmVessel_y - 2*$WarmVesselThickness]}"
2237  z="@{[$WarmVessel_z - 2*$WarmVesselThickness]}"/>
2238 
2239  <subtraction name="ThermInsShell">
2240  <first ref="ThermIns"/>
2241  <second ref="ThermInsInterior"/>
2242  </subtraction>
2243 
2244  <subtraction name="WarmVesselShell">
2245  <first ref="WarmVessel"/>
2246  <second ref="WarmVesselInterior"/>
2247  </subtraction>
2248 
2249 </solids>
2250 EOF
2251 
2252 
2253 # Detector enclosure structure
2254  print ENCL <<EOF;
2255 <structure>
2256 
2257  <volume name="volThermIns">
2258  <materialref ref="Polyurethane"/>
2259  <solidref ref="ThermInsShell"/>
2260  </volume>
2261 
2262  <volume name="volWarmVessel">
2263  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni_WV"/>
2264  <solidref ref="WarmVesselShell"/>
2265  </volume>
2266 
2267  <volume name="volDetEnclosure">
2268  <materialref ref="Air"/>
2269  <solidref ref="DetEnclosure"/>
2270 
2271  <physvol>
2272  <volumeref ref="volThermIns"/>
2273  <positionref ref="posThermInsInDetEncl"/>
2274  </physvol>
2275 
2276  <physvol>
2277  <volumeref ref="volCRT_Shell"/>
2278  <positionref ref="posCRTShellInDetEncl"/>
2279  </physvol>
2280 
2281  <physvol>
2282  <volumeref ref="volWarmVessel"/>
2283  <positionref ref="posWarmVesselInDetEncl"/>
2284  </physvol>
2285 
2286  <physvol>
2287  <volumeref ref="volCryostat"/>
2288  <positionref ref="posCryo1InWarmVessel"/>
2289  </physvol>
2290 
2291  <physvol>
2292  <volumeref ref="volCryostat"/>
2293  <positionref ref="posCryo2InWarmVessel"/>
2294  </physvol>
2295 
2296 EOF
2297 if ($crt_on==1)
2298 {
2299 #+++++++++++++++++++++++++ Position CRT modules ++++++++++++++++++++++++++
2300  #$YPosMINOSSide = $Cryostat_y/2+$MINOSModWidth/2;
2301 
2302 
2303 } #end of crt_on
2304 
2305  else {
2306 
2307 print ENCL <<EOF;
2308 
2309  <!-- This GDML version has no crt and uses much less memory -->
2310 
2311 EOF
2312 
2313 }
2314 
2315 print ENCL <<EOF;
2316 
2317 </volume>
2318 
2319 </structure>
2320 </gdml>
2321 EOF
2322 
2323 close(ENCL);
2324 }
process_name opflash particleana ie ie ie z
process_name opflash particleana ie x
process_name can override from command line with o or output proton mvapid_weights muon_all_BDT weights xml
Definition: runPID.fcl:28
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
auto end(FixedBins< T, C > const &) noexcept
Definition: FixedBins.h:585
return match has_match and(match.match_pdg==11 or match.match_pdg==-11)
then echo fcl name
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
process_name crt
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_Materials ( )

Definition at line 517 of file generate_icarus_geometry_splitwire.pl.

518 {
519 
520 # Create the <materials> fragment file name,
521 # add file to list of output GDML fragments,
522 # and open it
523  $MAT = "icarus_Materials" . $suffix . ".gdml";
524  push (@gdmlFiles, $MAT);
525  $MAT = ">" . $MAT;
526  open(MAT) or die("Could not open file $MAT for writing");
527 
528 
529  print MAT <<EOF;
530 <materials>
531  <element name="videRef" formula="VACUUM" Z="1"> <atom value="1"/> </element>
532  <element name="bromine" formula="Br" Z="35"> <atom value="79.904"/> </element>
533  <element name="hydrogen" formula="H" Z="1"> <atom value="1.0079"/> </element>
534  <element name="nitrogen" formula="N" Z="7"> <atom value="14.0067"/> </element>
535  <element name="oxygen" formula="O" Z="8"> <atom value="15.999"/> </element>
536  <element name="aluminum" formula="Al" Z="13"> <atom value="26.9815"/> </element>
537  <element name="silicon" formula="Si" Z="14"> <atom value="28.0855"/> </element>
538  <element name="carbon" formula="C" Z="6"> <atom value="12.0107"/> </element>
539  <element name="potassium" formula="K" Z="19"> <atom value="39.0983"/> </element>
540  <element name="chromium" formula="Cr" Z="24"> <atom value="51.9961"/> </element>
541  <element name="iron" formula="Fe" Z="26"> <atom value="55.8450"/> </element>
542  <element name="nickel" formula="Ni" Z="28"> <atom value="58.6934"/> </element>
543  <element name="calcium" formula="Ca" Z="20"> <atom value="40.078"/> </element>
544  <element name="magnesium" formula="Mg" Z="12"> <atom value="24.305"/> </element>
545  <element name="sodium" formula="Na" Z="11"> <atom value="22.99"/> </element>
546  <element name="titanium" formula="Ti" Z="22"> <atom value="47.867"/> </element>
547  <element name="argon" formula="Ar" Z="18"> <atom value="39.9480"/> </element>
548  <element name="sulphur" formula="S" Z="16"> <atom value="32.065"/> </element>
549  <element name="phosphorus" formula="P" Z="15"> <atom value="30.973"/> </element>
550  <element name="copper" formula="Cu" Z="29"> <atom value="63.5463"/> </element>
551  <element name="manganese" formula="Mn" Z="25"> <atom value="54.938043"/> </element>
552  <element name="vanadium" formula="V" Z="23"> <atom value="50.94151"/> </element>
553 
554  <material name="Vacuum" formula="Vacuum">
555  <D value="1.e-25" unit="g/cm3"/>
556  <fraction n="1.0" ref="videRef"/>
557  </material>
558 
559  <material name="ALUMINUM_Al" formula="ALUMINUM_Al">
560  <D value="2.6990" unit="g/cm3"/>
561  <fraction n="1.0000" ref="aluminum"/>
562  </material>
563 
564  <material name="ALUMINUM_CRYO" formula="ALUMINUM_CRYO">
565  <D value="0.5991" unit="g/cm3"/>
566  <fraction n="1.0000" ref="aluminum"/>
567  </material>
568 
569  <material name="SILICON_Si" formula="SILICON_Si">
570  <D value="2.3300" unit="g/cm3"/>
571  <fraction n="1.0000" ref="silicon"/>
572  </material>
573 
574  <material name="epoxy_resin" formula="C38H40O6Br4">
575  <D value="1.1250" unit="g/cm3"/>
576  <composite n="38" ref="carbon"/>
577  <composite n="40" ref="hydrogen"/>
578  <composite n="6" ref="oxygen"/>
579  <composite n="4" ref="bromine"/>
580  </material>
581 
582  <material name="SiO2" formula="SiO2">
583  <D value="2.2" unit="g/cm3"/>
584  <composite n="1" ref="silicon"/>
585  <composite n="2" ref="oxygen"/>
586  </material>
587 
588  <material name="Al2O3" formula="Al2O3">
589  <D value="3.97" unit="g/cm3"/>
590  <composite n="2" ref="aluminum"/>
591  <composite n="3" ref="oxygen"/>
592  </material>
593 
594  <material name="Fe2O3" formula="Fe2O3">
595  <D value="5.24" unit="g/cm3"/>
596  <composite n="2" ref="iron"/>
597  <composite n="3" ref="oxygen"/>
598  </material>
599 
600  <material name="CaO" formula="CaO">
601  <D value="3.35" unit="g/cm3"/>
602  <composite n="1" ref="calcium"/>
603  <composite n="1" ref="oxygen"/>
604  </material>
605 
606  <material name="MgO" formula="MgO">
607  <D value="3.58" unit="g/cm3"/>
608  <composite n="1" ref="magnesium"/>
609  <composite n="1" ref="oxygen"/>
610  </material>
611 
612  <material name="Na2O" formula="Na2O">
613  <D value="2.27" unit="g/cm3"/>
614  <composite n="2" ref="sodium"/>
615  <composite n="1" ref="oxygen"/>
616  </material>
617 
618  <material name="TiO2" formula="TiO2">
619  <D value="4.23" unit="g/cm3"/>
620  <composite n="1" ref="titanium"/>
621  <composite n="2" ref="oxygen"/>
622  </material>
623 
624  <material name="FeO" formula="FeO">
625  <D value="5.745" unit="g/cm3"/>
626  <composite n="1" ref="iron"/>
627  <composite n="1" ref="oxygen"/>
628  </material>
629 
630  <material name="CO2" formula="CO2">
631  <D value="1.562" unit="g/cm3"/>
632  <composite n="1" ref="iron"/>
633  <composite n="2" ref="oxygen"/>
634  </material>
635 
636  <material name="P2O5" formula="P2O5">
637  <D value="1.562" unit="g/cm3"/>
638  <composite n="2" ref="phosphorus"/>
639  <composite n="5" ref="oxygen"/>
640  </material>
641 
642  <material formula=" " name="DUSEL_Rock">
643  <D value="2.82" unit="g/cm3"/>
644  <fraction n="0.5267" ref="SiO2"/>
645  <fraction n="0.1174" ref="FeO"/>
646  <fraction n="0.1025" ref="Al2O3"/>
647  <fraction n="0.0473" ref="MgO"/>
648  <fraction n="0.0422" ref="CO2"/>
649  <fraction n="0.0382" ref="CaO"/>
650  <fraction n="0.0240" ref="carbon"/>
651  <fraction n="0.0186" ref="sulphur"/>
652  <fraction n="0.0053" ref="Na2O"/>
653  <fraction n="0.00070" ref="P2O5"/>
654  <fraction n="0.0771" ref="oxygen"/>
655  </material>
656 
657  <material name="fibrous_glass">
658  <D value="2.74351" unit="g/cm3"/>
659  <fraction n="0.600" ref="SiO2"/>
660  <fraction n="0.118" ref="Al2O3"/>
661  <fraction n="0.001" ref="Fe2O3"/>
662  <fraction n="0.224" ref="CaO"/>
663  <fraction n="0.034" ref="MgO"/>
664  <fraction n="0.010" ref="Na2O"/>
665  <fraction n="0.013" ref="TiO2"/>
666  </material>
667 
668  <material name="FR4">
669  <D value="1.98281" unit="g/cm3"/>
670  <fraction n="0.47" ref="epoxy_resin"/>
671  <fraction n="0.53" ref="fibrous_glass"/>
672  </material>
673 
674  <material name="STEEL_STAINLESS_Fe7Cr2Ni" formula="STEEL_STAINLESS_Fe7Cr2Ni">
675  <D value="7.9300" unit="g/cm3"/>
676  <fraction n="0.0010" ref="carbon"/>
677  <fraction n="0.1792" ref="chromium"/>
678  <fraction n="0.7298" ref="iron"/>
679  <fraction n="0.0900" ref="nickel"/>
680  </material>
681 
682  <material name="STEEL_STAINLESS_Fe7Cr2Ni_WV" formula="STEEL_STAINLESS_Fe7Cr2Ni_WV">
683  <!-- <D value="0.3844" unit="g/cm3"/> -->
684  <D value="0.38897" unit="g/cm3"/>
685  <fraction n="0.0010" ref="carbon"/>
686  <fraction n="0.1792" ref="chromium"/>
687  <fraction n="0.7298" ref="iron"/>
688  <fraction n="0.0900" ref="nickel"/>
689  </material>
690 
691  <material name="LAr" formula="LAr">
692  <D value="1.40" unit="g/cm3"/>
693  <fraction n="1.0000" ref="argon"/>
694  </material>
695 
696  <material name="ArGas" formula="ArGas">
697  <D value="0.00166" unit="g/cm3"/>
698  <fraction n="1.0" ref="argon"/>
699  </material>
700 
701  <material formula=" " name="Air">
702  <D value="0.001205" unit="g/cm3"/>
703  <fraction n="0.781154" ref="nitrogen"/>
704  <fraction n="0.209476" ref="oxygen"/>
705  <fraction n="0.00934" ref="argon"/>
706  </material>
707 
708  <material formula=" " name="G10">
709  <D value="1.7" unit="g/cm3"/>
710  <fraction n="0.2805" ref="silicon"/>
711  <fraction n="0.3954" ref="oxygen"/>
712  <fraction n="0.2990" ref="carbon"/>
713  <fraction n="0.0251" ref="hydrogen"/>
714  </material>
715 
716  <material formula=" " name="Granite">
717  <D value="2.7" unit="g/cm3"/>
718  <fraction n="0.438" ref="oxygen"/>
719  <fraction n="0.257" ref="silicon"/>
720  <fraction n="0.222" ref="sodium"/>
721  <fraction n="0.049" ref="aluminum"/>
722  <fraction n="0.019" ref="iron"/>
723  <fraction n="0.015" ref="potassium"/>
724  </material>
725 
726  <material formula=" " name="ShotRock">
727  <D value="@{[2.7*0.6]}" unit="g/cm3"/>
728  <fraction n="0.438" ref="oxygen"/>
729  <fraction n="0.257" ref="silicon"/>
730  <fraction n="0.222" ref="sodium"/>
731  <fraction n="0.049" ref="aluminum"/>
732  <fraction n="0.019" ref="iron"/>
733  <fraction n="0.015" ref="potassium"/>
734  </material>
735 
736  <material formula=" " name="Dirt">
737  <D value="1.7" unit="g/cm3"/>
738  <fraction n="0.438" ref="oxygen"/>
739  <fraction n="0.257" ref="silicon"/>
740  <fraction n="0.222" ref="sodium"/>
741  <fraction n="0.049" ref="aluminum"/>
742  <fraction n="0.019" ref="iron"/>
743  <fraction n="0.015" ref="potassium"/>
744  </material>
745 
746  <material formula=" " name="Concrete">
747  <D value="2.3" unit="g/cm3"/>
748  <fraction n="0.530" ref="oxygen"/>
749  <fraction n="0.335" ref="silicon"/>
750  <fraction n="0.060" ref="calcium"/>
751  <fraction n="0.015" ref="sodium"/>
752  <fraction n="0.020" ref="iron"/>
753  <fraction n="0.040" ref="aluminum"/>
754  </material>
755 
756  <material formula="H2O" name="Water">
757  <D value="1.0" unit="g/cm3"/>
758  <fraction n="0.1119" ref="hydrogen"/>
759  <fraction n="0.8881" ref="oxygen"/>
760  </material>
761 
762  <material formula="Ti" name="Titanium">
763  <D value="4.506" unit="g/cm3"/>
764  <fraction n="1." ref="titanium"/>
765  </material>
766 
767  <material name="TPB" formula="TPB">
768  <D value="1.40" unit="g/cm3"/>
769  <fraction n="1.0000" ref="argon"/>
770  </material>
771 
772  <material name="Glass">
773  <D value="2.74351" unit="g/cm3"/>
774  <fraction n="0.600" ref="SiO2"/>
775  <fraction n="0.118" ref="Al2O3"/>
776  <fraction n="0.001" ref="Fe2O3"/>
777  <fraction n="0.224" ref="CaO"/>
778  <fraction n="0.034" ref="MgO"/>
779  <fraction n="0.010" ref="Na2O"/>
780  <fraction n="0.013" ref="TiO2"/>
781  </material>
782 
783  <material name="Acrylic">
784  <D value="1.19" unit="g/cm3"/>
785  <fraction n="0.600" ref="carbon"/>
786  <fraction n="0.320" ref="oxygen"/>
787  <fraction n="0.080" ref="hydrogen"/>
788  </material>
789 
790  <material name="Polystyrene">
791  <D unit="g/cm3" value="1.06"/>
792  <fraction n="0.077418" ref="hydrogen"/>
793  <fraction n="0.922582" ref="carbon"/>
794  </material>
795 
796  <material name="Polyurethane" formula="C27H36N2O10" >
797  <D value="0.9" unit="g/cm3"/>
798  <composite n="27" ref="carbon"/>
799  <composite n="36" ref="hydrogen"/>
800  <composite n="2" ref="nitrogen"/>
801  <composite n="10" ref="oxygen"/>
802  </material>
803 
804  <material name="STEEL_A992">
805  <D unit="g/cm3" value="7.85"/>
806  <fraction n="0.0022" ref="carbon"/>
807  <fraction n="0.005" ref="copper"/>
808  <fraction n="0.01" ref="manganese"/>
809  <fraction n="0.0044" ref="nickel"/>
810  <fraction n="0.00034" ref="phosphorus"/>
811  <fraction n="0.0039" ref="silicon"/>
812  <fraction n="0.00044" ref="sulphur"/>
813  <fraction n="0.001" ref="vanadium"/>
814  <fraction n="0.97272" ref="iron" />
815  </material>
816 
817 
818 </materials>
819 EOF
820 
821 close(MAT);
822 }
see a below echo S(symbol in a section other than those above)
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
BEGIN_PROLOG g
BEGIN_PROLOG V
for($it=0;$it< $RaceTrack_number;$it++)
BEGIN_PROLOG P12020 ALUMINUM_Al
BEGIN_PROLOG P12020 G10
BEGIN_PROLOG P12020 copper
process_name largeant stream1 can override from command line with o or output physics producers generator N
do i e
then echo fcl name
temporary value
double Si(double x)
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
gen_Mech_Structure ( )
gen_PMT ( )
gen_RaceTracks ( )
sub gen_TPC ( )

Definition at line 830 of file generate_icarus_geometry_splitwire.pl.

831 {
832 # Create the TPC fragment file name,
833 # add file to list of output GDML fragments,
834 # and open it
835  $TPC = "icarus_TPC" . $suffix . ".gdml";
836  push (@gdmlFiles, $TPC);
837  $TPC = ">" . $TPC;
838  open(TPC) or die("Could not open file $TPC for writing");
839 
840 
841 # The standard XML prefix and starting the gdml
842  print TPC <<EOF;
843 <?xml version='1.0'?>
844 <gdml>
845 EOF
846 
847 
848 # All the TPC solids save the wires.
849 print TPC <<EOF;
850 <solids>
851  <box name="TPC" lunit="cm"
852  x="$TPC_x"
853  y="$TPC_y"
854  z="$TPCHalf_z"/>
855  <box name="TPCPlane" lunit="cm"
856  x="$TPCWirePlane_x"
857  y="$TPCWirePlane_y"
858  z="$TPCWirePlaneHalf_z"/>
859  <box name="TPCActive" lunit="cm"
860  x="$TPCActive_x"
861  y="$TPCActive_y"
862  z="$TPCActiveHalf_z"/>
863 EOF
864 
865 
866 #++++++++++++++++++++++++++++ Wire Solids ++++++++++++++++++++++++++++++
867 
868 # Set number of wires to default to zero, when $wires_on = 0, for a low memory
869 # version. But if $wires_on = 1, calculate the number of wires on each side of each
870 # plane to be used in the for loops
871 
872 my $NumberHorizontalWires = 0;
873 my $NumberCornerUWires = 0;
874 my $NumberCommonUWires = 0;
875 my $NumberCornerVWires = 0;
876 my $NumberCommonVWires = 0;
877 
878 
879 if ($wires_on == 1)
880 {
881  # Number of wires in one corner
882  #$NumberCornerVWires = int( $TPCWirePlane_y/$VWire_ypitch );
883  #$NumberCornerWWires = int( $TPCWirePlane_y/$WWire_ypitch );
884  $NumberCornerUWires = 480;
885  $NumberCornerVWires = 480;
886 
887  # Number of wires in one corner + the number to cover the whole corner.
888  $NumberCornerExtUWires = 528;
889  $NumberCornerExtVWires = 528;
890 
891  # Total number of wires touching one vertical (longer) side
892  # Note that the total number of wires per plane is this + another set of corner wires
893  # $NumberSideUWires = int( $TPCWirePlane_z/$UWire_zpitch );
894  # $NumberSideVWires = int( $TPCWirePlane_z/$VWire_zpitch );
895  # $NumberSideWWires = int( $TPCWirePlane_z/$WWire_zpitch );
896 
897  # Number of wires per side that aren't cut off by the corner
898  # $NumberCommonUWires = $NumberSideUWires - $NumberCornerUWires;
899  # $NumberCommonVWires = $NumberSideVWires - $NumberCornerVWires;
900  #$NumberCommonWWires = $NumberSideWWires - $NumberCornerWWires;
901  #$NumberCommonUWires = 4640;
902  #$NumberCommonVWires = 4640;
903  $NumberCommonUWires = 2056;
904  $NumberCommonVWires = 2056;
905 
906  # number of wires on the vertical plane
907  #$NumberHorizontalWires = int( ($TPCWirePlane_y-$TPCWireThickness)/$UWirePitch );
908  #Number of wires inthe Y plane-->Horizontal plane Induction I
909  $NumberHorizontalWires = 1056;
910 
911 }
912 
913 # These XML comments throughout make the GDML file easier to navigate
914 print TPC <<EOF;
915 
916 <!--+++++++++++++++++++ Y Wire Solids ++++++++++++++++++++++-->
917 
918 EOF
919 
920 if ($wires_on==1)
921 {
922 
923 #CommonWire = wires with same length
924 
925  print TPC <<EOF;
926  <tube name="TPCWireYCommon"
927  rmax="$TPCWireRadius"
928  z="$TPCWirePlaneHalf_z"
929  deltaphi="360"
930  aunit="deg"
931  lunit="cm"/>
932 EOF
933 
934 } else {
935 
936 print TPC <<EOF;
937 
938  <!-- This GDML version has no wires and uses much less memory -->
939 
940 EOF
941 
942 }
943 
944 print TPC <<EOF;
945 
946 
947 <!--+++++++++++++++++++ U Wire Solids ++++++++++++++++++++++-->
948 
949 
950 EOF
951 
952 # The corner wires for the U plane
953 if ($wires_on==1)
954 {
955 #FAKE CORNER
956  $length = $CommonWireLength + $DeltaLUCorner/2;
957 
958  for ($i = 0; $i < $NumberCornerExtUWires; ++$i)
959  {
960  $length -= $DeltaLUCorner;
961 
962 print TPC <<EOF;
963  <tube name="TPCWireU$i"
964  rmax="$TPCWireRadius"
965  z="$length"
966  deltaphi="360"
967  aunit="deg"
968  lunit="cm"/>
969 EOF
970 
971 #print(" $i $length \n");
972 
973  } #ends FAKE CORNER
974 
975 #REAL CORNER
976  $length = $CommonWireLength;
977 
978  for ($i = 0; $i < $NumberCornerUWires; ++$i)
979  {
980  $length -= $DeltaLUCorner;
981 
982 print TPC <<EOF;
983  <tube name="TPCWireCornerU$i"
984  rmax="$TPCWireRadius"
985  z="$length"
986  deltaphi="360"
987  aunit="deg"
988  lunit="cm"/>
989 EOF
990 
991 #print(" $i $length \n");
992 
993  } #ends REAL CORNER
994 
995 print TPC <<EOF;
996  <tube name="TPCWireUCommon"
997  rmax="$TPCWireRadius"
998  z="$CommonWireLength"
999  deltaphi="360"
1000  aunit="deg"
1001  lunit="cm"/>
1002 EOF
1003 
1004 } else {
1005 
1006 print TPC <<EOF;
1007 
1008  <!-- no wires in this GDML -->
1009 
1010 EOF
1011 
1012 }
1013 
1014 
1015 print TPC <<EOF;
1016 
1017 
1018 <!--+++++++++++++++++++ V Wire Solids ++++++++++++++++++++++-->
1019 
1020 
1021 EOF
1022 
1023 # The corner wires for the V plane
1024 if ($wires_on==1)
1025 {
1026 # FAKE CORNER
1027  $length = $CommonWireLength + $DeltaLVCorner/2;
1028 
1029  for ($i = 0; $i < $NumberCornerExtVWires; ++$i)
1030  {
1031 
1032  $length -= $DeltaLVCorner;
1033 
1034  print TPC <<EOF;
1035  <tube name="TPCWireV$i"
1036  rmax="$TPCWireRadius"
1037  z="$length"
1038  deltaphi="360"
1039  aunit="deg"
1040  lunit="cm"/>
1041 EOF
1042 
1043 #print(" $i $length \n");
1044 
1045  } #ends FAKE CORNER
1046 
1047 # REAL CORNER
1048  $length = $CommonWireLength;
1049 
1050  for ($i = 0; $i < $NumberCornerVWires; ++$i)
1051  {
1052 
1053  $length -= $DeltaLVCorner;
1054 
1055  print TPC <<EOF;
1056  <tube name="TPCWireCornerV$i"
1057  rmax="$TPCWireRadius"
1058  z="$length"
1059  deltaphi="360"
1060  aunit="deg"
1061  lunit="cm"/>
1062 EOF
1063 
1064 #print(" $i $length \n");
1065 
1066  } #ends REAL CORNER
1067 
1068 
1069  print TPC <<EOF;
1070  <tube name="TPCWireVCommon"
1071  rmax="$TPCWireRadius"
1072  z="$CommonWireLength"
1073  deltaphi="360"
1074  aunit="deg"
1075  lunit="cm"/>
1076 EOF
1077 
1078 } else {
1079 
1080 print TPC <<EOF;
1081 
1082  <!-- no wires in this GDML -->
1083 
1084 EOF
1085 
1086 }
1087 
1088 # Begin structure and create the vertical wire logical volume
1089 print TPC <<EOF;
1090 </solids>
1091 <structure>
1092  <volume name="volTPCActive">
1093  <materialref ref="LAr"/>
1094  <solidref ref="TPCActive"/>
1095  </volume>
1096 
1097 <!--+++++++++++++++++ Wire Logical Volumes ++++++++++++++++++++-->
1098 
1099 EOF
1100 
1101 
1102 if ($wires_on==1)
1103 {
1104 
1105  # Common Y wire logical volume, referenced many times
1106  print TPC <<EOF;
1107  <volume name="volTPCWireYCommon">
1108  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1109  <solidref ref="TPCWireYCommon" />
1110  </volume>
1111 EOF
1112 
1113  # Fake Corner U wires logical volumes
1114  for ($i = 0; $i < $NumberCornerExtUWires; ++$i)
1115  {
1116  print TPC <<EOF;
1117  <volume name="volTPCWireU$i">
1118  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1119  <solidref ref="TPCWireU$i" />
1120  </volume>
1121 EOF
1122 
1123  }
1124 
1125  # Real Corner U wires logical volumes
1126  for ($i = 0; $i < $NumberCornerUWires; ++$i)
1127  {
1128  print TPC <<EOF;
1129  <volume name="volTPCWireCornerU$i">
1130  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1131  <solidref ref="TPCWireCornerU$i" />
1132  </volume>
1133 EOF
1134 
1135  }
1136 
1137  # Common U wire logical volume, referenced many times
1138  print TPC <<EOF;
1139  <volume name="volTPCWireUCommon">
1140  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1141  <solidref ref="TPCWireUCommon" />
1142  </volume>
1143 EOF
1144 
1145  # Fake Corner V wires logical volumes
1146  for ($i = 0; $i < $NumberCornerExtVWires; ++$i)
1147  {
1148  print TPC <<EOF;
1149  <volume name="volTPCWireV$i">
1150  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1151  <solidref ref="TPCWireV$i" />
1152  </volume>
1153 EOF
1154 
1155  }
1156 
1157  # Real Corner V wires logical volumes
1158  for ($i = 0; $i < $NumberCornerVWires; ++$i)
1159  {
1160  print TPC <<EOF;
1161  <volume name="volTPCWireCornerV$i">
1162  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1163  <solidref ref="TPCWireCornerV$i" />
1164  </volume>
1165 EOF
1166 
1167  }
1168  # Common V wire logical volume, referenced many times
1169  print TPC <<EOF;
1170  <volume name="volTPCWireVCommon">
1171  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni" />
1172  <solidref ref="TPCWireVCommon" />
1173  </volume>
1174 EOF
1175 
1176 } else {
1177 
1178 
1179 print TPC <<EOF;
1180 
1181  <!-- This GDML version has no wires and uses much less memory -->
1182 
1183 EOF
1184 
1185 }
1186 
1187 
1188 #+++++++++++++++++++++++++ Position physical wires ++++++++++++++++++++++++++
1189 
1190 # ++++++++++++++++++++++ Y Plane +++++++++++++++++++++++
1191 
1192 # Create Y plane logical volume
1193 print TPC <<EOF;
1194 
1195 
1196 <!--+++++++++++++++++++++ Y Plane ++++++++++++++++++++++++-->
1197 
1198 
1199  <volume name="volTPCPlaneY">
1200  <materialref ref="LAr"/>
1201  <solidref ref="TPCPlane"/>
1202 EOF
1203 
1204 if ($wires_on==0)
1205 {
1206 print TPC <<EOF;
1207 
1208  <!-- no wires -->
1209 
1210 EOF
1211 
1212 } else {
1213 
1214  $ypos = ($NumberHorizontalWires+1)*$YWirePitch/2;
1215 
1216  for ($i = 0; $i < $NumberHorizontalWires; ++$i)
1217  {
1218  $ypos -= $YWirePitch;
1219 
1220 
1221 print TPC <<EOF;
1222  <physvol>
1223  <volumeref ref="volTPCWireYCommon"/>
1224  <position name="posTPCWireY$i" unit="cm" x="0" y="$ypos " z="0"/>
1225  <rotationref ref="rIdentity"/>
1226  </physvol>
1227 EOF
1228 
1229  #print("0 $ypos \n");
1230 
1231  #$ypos -= $YWirePitch;
1232 
1233  }
1234 
1235 } #ends else
1236 
1237 
1238 # ++++++++++++++++++++++ U Plane +++++++++++++++++++++++
1239 
1240 # End U plane and create U plane logical volume
1241 print TPC <<EOF;
1242  </volume>
1243 
1244 
1245 <!--+++++++++++++++++++++ U Plane ++++++++++++++++++++++++-->
1246 
1247 
1248  <volume name="volTPCPlaneU">
1249  <materialref ref="LAr"/>
1250  <solidref ref="TPCPlane"/>
1251 EOF
1252 
1253 if ($wires_on==0)
1254 {
1255 print TPC <<EOF;
1256 
1257  <!-- no wires -->
1258 
1259 EOF
1260 
1261 } else {
1262 
1263 #CORNERS
1264 
1265  $ypos1 = $TPCActive_y/2;
1267 
1268  $ypos2 = -$TPCActive_y/2;
1269  $zpos2 = -$TPCActiveHalf_z/2;
1270 
1271  #Positioning of 480 real U corner wires.
1272  for ($i = 0; $i < $NumberCornerUWires; ++$i)
1273  {
1274  $ypos1 += $UWire_ypitch ;
1275  $zpos2 -= $UWire_zpitch ;
1276 
1277  $ypos = ($ypos1+$ypos2)/2;
1278  $zpos = ($zpos1+$zpos2)/2;
1279 
1280  #print("U Corner wires: $i $zpos $ypos , ");
1281 
1282 print TPC <<EOF;
1283  <physvol>
1284  <volumeref ref="volTPCWireCornerU$i"/>
1285  <position name="posTPCWireU$i" unit="cm" x="0" y="$ypos " z="$zpos"/>
1286  <rotationref ref="rPlusUAngleAboutX"/>
1287  </physvol>
1288 EOF
1289  }
1290 
1291  $ypos1 = $TPCActive_y/2 - $UWire_ypitch + $UWire_ypitch/2;
1293 
1294  $ypos2 = - $TPCActive_y/2;
1295  $zpos2 = -$TPCActiveHalf_z/2;
1296 
1297  #Positioning of 528 fake U corners wires.
1298  for ($i = 0; $i < $NumberCornerExtUWires; ++$i)
1299  {
1300  $ypos1 += $UWire_ypitch;
1301  $zpos2 -= $UWire_zpitch;
1302 
1303  $ypos = ($ypos1+$ypos2)/2;
1304  $zpos = ($zpos1+$zpos2)/2;
1305 
1306  $ypos = - $ypos;
1307  $zpos = - $zpos;
1308 
1309 print TPC <<EOF;
1310  <physvol>
1311  <volumeref ref="volTPCWireU$i"/>
1312  <position name="posTPCWireU@{[$i+$NumberCommonUWires+$NumberCornerUWires]}" unit="cm" x="0" y="$ypos " z="$zpos"/>
1313  <rotationref ref="rPlusUAngleAboutX"/>
1314  </physvol>
1315 EOF
1316  } #ends CORNER
1317 
1318 
1319 #Common Wires
1320 
1322  #print("common wires $zpos \n");
1323 
1324  for ($i = 0; $i < $NumberCommonUWires; ++$i)
1325  {
1326 
1327 print TPC <<EOF;
1328  <physvol>
1329  <volumeref ref="volTPCWireUCommon"/>
1330  <position name="posTPCWireU@{[$i+$NumberCornerUWires]}" unit="cm" x="0" y="0 " z="$zpos"/>
1331  <rotationref ref="rPlusUAngleAboutX"/>
1332  </physvol>
1333 EOF
1334 
1335  #print("U wires $i $zpos 0 \n");
1336  $zpos += $UWire_zpitch;
1337 
1338  }
1339 
1340 
1341 } #ends else
1342 
1343 # ++++++++++++++++++++++ V Plane +++++++++++++++++++++++
1344 
1345 # End V plane and create V plane logical volume
1346 print TPC <<EOF;
1347  </volume>
1348 
1349 <!--+++++++++++++++++++++ V Plane ++++++++++++++++++++++++-->
1350 
1351 
1352  <volume name="volTPCPlaneV">
1353  <materialref ref="LAr"/>
1354  <solidref ref="TPCPlane"/>
1355 EOF
1356 
1357 if ($wires_on==0)
1358 {
1359 print TPC <<EOF;
1360 
1361  <!-- no wires -->
1362 
1363 EOF
1364 
1365 } else {
1366 
1367 #CORNERS
1368 
1369  $ypos1 = $TPCActive_y/2;
1370  $zpos1 = -$TPCActiveHalf_z/2;
1371 
1372  $ypos2 = -$TPCActive_y/2;
1374 
1375  #Positioning of 480 real V corners wires.
1376 
1377  for ($i = 0; $i < $NumberCornerVWires; ++$i)
1378  {
1379  $ypos1 -= $VWire_ypitch ;
1380  $zpos2 -= $VWire_zpitch ;
1381 
1382  $ypos = ($ypos1+$ypos2)/2;
1383  $zpos = ($zpos1+$zpos2)/2;
1384 
1385  #print("V Corner wires: $i $zpos $ypos , ");
1386 
1387 
1388 print TPC <<EOF;
1389  <physvol>
1390  <volumeref ref="volTPCWireCornerV$i"/>
1391  <position name="posTPCWireV$i" unit="cm" x="0" y="$ypos " z="$zpos"/>
1392  <rotationref ref="rMinusVAngleAboutX"/>
1393  </physvol>
1394 EOF
1395  }
1396 
1397  $ypos1 = $TPCActive_y/2 + $VWire_ypitch - $VWire_ypitch/2;
1398  $zpos1 = -$TPCActiveHalf_z/2 + $VWire_zpitch - $VWire_zpitch/2;
1399 
1400  $ypos2 = -$TPCActive_y/2;
1402 
1403  #Positioning of 528 fake V corners wires.
1404  for ($i = 0; $i < $NumberCornerExtVWires; ++$i)
1405  {
1406  $ypos1 -= $VWire_ypitch;
1407  $zpos2 -= $VWire_zpitch;
1408 
1409  $ypos = ($ypos1+$ypos2)/2;
1410  $zpos = ($zpos1+$zpos2)/2;
1411 
1412  $ypos = - $ypos;
1413  $zpos = - $zpos;
1414 
1415 print TPC <<EOF;
1416  <physvol>
1417  <volumeref ref="volTPCWireV$i"/>
1418  <position name="posTPCWireV@{[$i+$NumberCommonVWires+$NumberCornerVWires]}" unit="cm" x="0" y="$ypos " z="$zpos"/>
1419  <rotationref ref="rMinusVAngleAboutX"/>
1420  </physvol>
1421 EOF
1422 
1423  #print(" $zpos $ypos \n");
1424 
1425  } #ends CORNERS
1426 
1427  #Common Wires
1428 
1429  $zpos = (-$TPCActiveHalf_z + $CommonWireLength * $CosVAngle + $VWire_zpitch) / 2. - $VWire_zpitch/2;
1430 
1431  for ($i = 0; $i < $NumberCommonVWires; ++$i)
1432  {
1433 
1434 print TPC <<EOF;
1435  <physvol>
1436  <volumeref ref="volTPCWireVCommon"/>
1437  <position name="posTPCWireV@{[$i+$NumberCornerVWires]}" unit="cm" x="0" y="0 " z="$zpos"/>
1438  <rotationref ref="rMinusVAngleAboutX"/>
1439  </physvol>
1440 EOF
1441 
1442  #print("V wires: $i $zpos 0 \n");
1443  $zpos += $VWire_zpitch;
1444 
1445  }
1446 
1447 
1448 } #ends else
1449 
1450 print TPC <<EOF;
1451  </volume>
1452 EOF
1453 
1454 #+++++++++++++++++++++ Position physical wires Above +++++++++++++++++++++
1455 
1456 my $VolY_x = (-$TPC_x/2) + 3*$WirePlaneSpacing; #+ $TPCWirePlane_x/2;
1457 my $VolU_x = (-$TPC_x/2) + 2*$WirePlaneSpacing; #+ $TPCWirePlane_x/2;
1458 my $VolV_x = (-$TPC_x/2) + 1*$WirePlaneSpacing; #+ $TPCWirePlane_x/2;
1459 
1460 
1461 #wrap up the TPC file
1462 print TPC <<EOF;
1463 
1464  <volume name="volTPC0">
1465  <materialref ref="LAr" />
1466  <solidref ref="TPC" />
1467  <physvol>
1468  <volumeref ref="volTPCPlaneY" />
1469  <position name="posTPCPlaneY" unit="cm" x="$VolY_x" y="0" z="@{[$UpstreamLArPadding/2]}" />
1470  </physvol>
1471  <physvol>
1472  <volumeref ref="volTPCPlaneU" />
1473  <position name="posTPCPlaneU" unit="cm" x="$VolU_x" y="0" z="@{[$UpstreamLArPadding/2]}" />
1474  </physvol>
1475  <physvol>
1476  <volumeref ref="volTPCPlaneV" />
1477  <position name="posTPCPlaneV" unit="cm" x="$VolV_x" y="0" z="@{[$UpstreamLArPadding/2]}" />
1478  </physvol>
1479  <physvol>
1480  <volumeref ref="volTPCActive"/>
1481  <positionref ref="posActiveInTPC0"/>
1482  </physvol>
1483  <physvol>
1484  <volumeref ref="volRaceTrackTVolume"/>
1485  <positionref ref="posRaceTrackTInTPC"/>
1486  <rotationref ref="rIdentity"/>
1487  </physvol>
1488  <physvol>
1489  <volumeref ref="volRaceTrackBVolume"/>
1490  <positionref ref="posRaceTrackBInTPC"/>
1491  <rotationref ref="rIdentity"/>
1492  </physvol>
1493  <physvol>
1494  <volumeref ref="volRaceTrackUVolume"/>
1495  <positionref ref="posRaceTrackUInTPC"/>
1496  <rotationref ref="rPlus90AboutX"/>
1497  </physvol>
1498  </volume>
1499 
1500 </structure>
1501 </gdml>
1502 EOF
1503 
1504  close(GDML);
1505 
1506 } #end of sub gen_TPC
process_name opflash particleana ie ie ie z
BEGIN_PROLOG true icarus_rawdigitfilter FilterTools FilterPlane1 Plane
process_name opflash particleana ie x
process_name can override from command line with o or output proton mvapid_weights muon_all_BDT weights xml
Definition: runPID.fcl:28
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
BEGIN_PROLOG TPC
my($xml, $fcl, $workdir, $check, $merge)
BEGIN_PROLOG V
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
auto end(FixedBins< T, C > const &) noexcept
Definition: FixedBins.h:585
return match has_match and(match.match_pdg==11 or match.match_pdg==-11)
if &&[-z"$BASH_VERSION"] then echo Attempting to switch to bash bash shellSwitch exit fi &&["$1"= 'shellSwitch'] shift declare a IncludeDirectives for Dir in
do echo $i
Definition: TrainMVA.sh:30
then echo fcl name
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
push(@gdmlFiles, $RACETRACK)
std::string sub(const std::string &a, const std::string &b)
Definition: TruthText.cxx:100
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_World ( )

Definition at line 2332 of file generate_icarus_geometry_splitwire.pl.

GetOptions ( "help|h ,
$help,
"suffix|s:s"  ,
$suffix,
"output|o:s"  ,
$output,
"concrete|c:s"  ,
$thickness_over,
"wires|w:s"  ,
$wires,
"vetocrt|v:s"  ,
$crt 
)
if ( defined  $help)

Definition at line 25 of file generate_icarus_geometry_splitwire.pl.

26 {
27  # If the user requested help, print the usage notes and exit.
28  usage();
29  exit;
30 }
usage
Definition: doGit.sh:21
if ( !defined  $suffix)

Definition at line 32 of file generate_icarus_geometry_splitwire.pl.

33 {
34  # The user didn't supply a suffix, so append nothing to the file
35  # names.
36  $suffix = "";
37 }
if (   $crt_on = =1)

Definition at line 422 of file generate_icarus_geometry_splitwire.pl.

422 {gen_CRT();} # places CRT: CERN modules top, eves; MINOS modules sides, DC bottom
walls no bottom
Definition: selectors.fcl:105
walls no top
Definition: selectors.fcl:105
open ( RACETRACK  )
open ( PMT  )
open ( MECH  )
Math::BigFloat precision ( 16)
push ( gdmlFiles,
  $RACETRACK 
)
sub usage ( )

Definition at line 436 of file generate_icarus_geometry_splitwire.pl.

437 {
438  print "Usage: $0 [-h|--help] [-o|--output <fragments-file>] [-s|--suffix <string>]";
439  print " [-c|--concrete <double>] [-w|--wires <wire or no wire geometry>] [-v <crt or no crt geometry>] \n";
440  print " if -o is omitted, output goes to STDOUT; <fragments-file.xml> is input to make_gdml.pl\n";
441  print " -s <string> appends the string to the file names; useful for multiple detector versions\n";
442  print " -c <double> set the thickness in cm of the concrete overburden\n";
443  print " (default is 300 and 0 means no overburden)\n";
444  print " -w <1> geometry with wires, <0> geometry with no wires\n";
445  print " -v <1> geometry with CRT, <0> geometry with no CRT \n";
446  print " -h prints this message, then quits\n";
447  print "Remind: the file without wires has to be <filename_nowires.gdml> \n";
448 }
do one_file $F done echo for F in find $TOP name CMakeLists txt print
sub write_fragments ( )

Definition at line 1168 of file generate_gdml_simple.pl.

1169 {
1170  # The output file is a list of the GDML sub-files created by this
1171  # script.
1172 
1173  if ( ! defined $output )
1174  {
1175  $output = "-"; # write to STDOUT
1176  }
1177 
1178  # Set up the output file.
1179  $OUTPUT = ">" . $output;
1180  open(OUTPUT) or die("Could not open file $OUTPUT");
1181 
1182  print OUTPUT <<EOF;
1183 <?xml version='1.0'?>
1184 
1185 <!-- Input to Geometry/gdml/make_gdml.pl; define the GDML fragments
1186  that will be zipped together to create a detector description.
1187  -->
1188 
1189 <config>
1190 
1191  <constantfiles>
1192 
1193  <!-- These files contain GDML <constant></constant>
1194  blocks. They are read in separately, so they can be
1195  interpreted into the remaining GDML. See make_gdml.pl for
1196  more information.
1197  -->
1198 
1199 EOF
1200 
1201  foreach $filename (@defFiles)
1202  {
1203  print OUTPUT <<EOF;
1205 EOF
1206  }
1207 
1208  print OUTPUT <<EOF;
1209 
1210  </constantfiles>
1211 
1212  <gdmlfiles>
1213 
1214  <!-- The GDML file fragments to be zipped together. -->
1215 
1216 EOF
1217 
1218  foreach $filename (@gdmlFiles)
1219  {
1220  print OUTPUT <<EOF;
1222 EOF
1223  }
1224 
1225  print OUTPUT <<EOF;
1226 
1227  </gdmlfiles>
1228 
1229 </config>
1230 EOF
1231 
1232  close(OUTPUT);
1233 }
foreach $filename(@defFiles)
process_name can override from command line with o or output proton mvapid_weights muon_all_BDT weights xml
Definition: runPID.fcl:28
esac done echo Signal files are
Definition: TrainMVA.sh:25
* file
Definition: file_to_url.sh:69
BEGIN_PROLOG could also be dds filename
do one_file $F done echo for F in find $TOP name CMakeLists txt print
def write
Definition: util.py:23
process_name gaushit a
for($it=0;$it< $RaceTrack_number;$it++)
#define the
then echo echo For and will not be changed by echo further linking echo echo B echo The symbol is in the uninitialized data multiple common symbols may appear with the echo same name If the symbol is defined the common echo symbols are treated as undefined references For more echo details on common see the discussion of warn common echo in *Note Linker see the discussion of warn common echo in *Note Linker such as a global int variable echo as opposed to a large global array echo echo I echo The symbol is an indirect reference to another symbol This echo is a GNU extension to the a out object file format which is echo rarely used echo echo N echo The symbol is a debugging symbol echo echo R echo The symbol is in a read only data section echo echo S echo The symbol is in an uninitialized data section for small echo objects echo echo T echo The symbol is in the the normal defined echo symbol is used with no error When a weak undefined symbol echo is linked and the symbol is not the value of the echo weak symbol becomes zero with no error echo echo W echo The symbol is a weak symbol that has not been specifically echo tagged as a weak object symbol When a weak defined symbol echo is linked with a normal defined the normal defined echo symbol is used with no error When a weak undefined symbol echo is linked and the symbol is not the value of the echo weak symbol becomes zero with no error echo echo echo The symbol is a stabs symbol in an a out object file In echo this the next values printed are the stabs other echo the stabs desc and the stab type Stabs symbols are echo used to hold debugging information For more information
then echo echo For and will not be changed by echo further linking echo echo B echo The symbol is in the uninitialized data multiple common symbols may appear with the echo same name If the symbol is defined the common echo symbols are treated as undefined references For more echo details on common see the discussion of warn common echo in *Note Linker see the discussion of warn common echo in *Note Linker such as a global int variable echo as opposed to a large global array echo echo I echo The symbol is an indirect reference to another symbol This echo is a GNU extension to the a out object file format which is echo rarely used echo echo N echo The symbol is a debugging symbol echo echo R echo The symbol is in a read only data section echo echo S echo The symbol is in an uninitialized data section for small echo objects echo echo T echo The symbol is in the the normal defined echo symbol is used with no error When a weak undefined symbol echo is linked and the symbol is not defined
if &&[-z"$BASH_VERSION"] then echo Attempting to switch to bash bash shellSwitch exit fi &&["$1"= 'shellSwitch'] shift declare a IncludeDirectives for Dir in
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")

Variable Documentation

$AlumThickness = 19

Definition at line 196 of file generate_icarus_geometry_splitwire.pl.

$Building_y = 1040.0

Definition at line 348 of file generate_icarus_geometry_splitwire.pl.

$CommonWireLength = (1056 * $YWirePitch) / $SinUAngle

Definition at line 112 of file generate_icarus_geometry_splitwire.pl.

$CosUAngle = cos( deg2rad($UAngle) )

Definition at line 91 of file generate_icarus_geometry_splitwire.pl.

$CosVAngle = cos( deg2rad($VAngle) )

Definition at line 95 of file generate_icarus_geometry_splitwire.pl.

$CPA_epsi = 0.001

Definition at line 138 of file generate_icarus_geometry_splitwire.pl.

$CPA_x = 0.15

Definition at line 119 of file generate_icarus_geometry_splitwire.pl.

$CPA_y = 320

Definition at line 139 of file generate_icarus_geometry_splitwire.pl.

$CPA_z = 1800

Definition at line 140 of file generate_icarus_geometry_splitwire.pl.

$CPAStrip_pitch = 5

Definition at line 143 of file generate_icarus_geometry_splitwire.pl.

$CPAStrip_x = $CPA_x-$CPA_epsi

Definition at line 141 of file generate_icarus_geometry_splitwire.pl.

$CPAStrip_y = 2.1

Definition at line 142 of file generate_icarus_geometry_splitwire.pl.

$CRTSHELL_WV_OFFSET_Y = 15

Definition at line 391 of file generate_icarus_geometry_splitwire.pl.

$CRTSHELL_WV_OFFSET_Z = 164.5865

Definition at line 392 of file generate_icarus_geometry_splitwire.pl.

$Cryo1InWarmVessel_x = -$Cryostat_x/2 - $CryoDist

Definition at line 323 of file generate_icarus_geometry_splitwire.pl.

$Cryo2InWarmVessel_x = $Cryostat_x/2 + $CryoDist

Definition at line 324 of file generate_icarus_geometry_splitwire.pl.

$CryoDist = 20

Definition at line 198 of file generate_icarus_geometry_splitwire.pl.

$CryoInWarmVessel_y = $WarmVesselInDetEncl_y -$WarmVessel_y/2 + $FoamPadding + $WarmVesselThickness + $Cryostat_y/2

Definition at line 401 of file generate_icarus_geometry_splitwire.pl.

$CryoInWarmVessel_z = 0

Definition at line 327 of file generate_icarus_geometry_splitwire.pl.

$Cryostat_x = $LAr_x + 2*$AlumThickness

Definition at line 200 of file generate_icarus_geometry_splitwire.pl.

$Cryostat_x_orig = $LAr_x_orig + 2*$AlumThickness

Definition at line 211 of file generate_icarus_geometry_splitwire.pl.

$Cryostat_y = $TPC_y + $GaseousAr_y + 2*$AlumThickness

Definition at line 204 of file generate_icarus_geometry_splitwire.pl.

$Cryostat_z = $TPC_z + 2*$AlumThickness

Definition at line 205 of file generate_icarus_geometry_splitwire.pl.

$DeltaLUCorner = $UWirePitch/($SinUAngle*$CosUAngle)

Definition at line 174 of file generate_icarus_geometry_splitwire.pl.

$DeltaLVCorner = $VWirePitch/($SinVAngle*$CosVAngle)

Definition at line 175 of file generate_icarus_geometry_splitwire.pl.

$DetEnc_pad = 0.1

Definition at line 376 of file generate_icarus_geometry_splitwire.pl.

$DetEnc_x = 1245

Definition at line 377 of file generate_icarus_geometry_splitwire.pl.

$DetEnc_y = $ExpHall_VertSpace - 2*$DetEnc_pad

Definition at line 378 of file generate_icarus_geometry_splitwire.pl.

$DetEnc_z = 3200

Definition at line 379 of file generate_icarus_geometry_splitwire.pl.

$DetEncl_yOffset = $Ground_y - $Overburden_y/3 - $ExpHall_VertSpace/2 -$DetEnc_pad

Definition at line 398 of file generate_icarus_geometry_splitwire.pl.

$DownstreamLArPadding = 90.0

Definition at line 133 of file generate_icarus_geometry_splitwire.pl.

$ExpHall_VertSpace = $ExpHall_y - $HallWallThicnekss - $Overburden_y/3

Definition at line 375 of file generate_icarus_geometry_splitwire.pl.

$ExpHall_y = 1170.0 + 80

Definition at line 349 of file generate_icarus_geometry_splitwire.pl.

$ext_struct_x = $struct_width

Definition at line 245 of file generate_icarus_geometry_splitwire.pl.

$ext_struct_y = 341.8

Definition at line 246 of file generate_icarus_geometry_splitwire.pl.

$ext_struct_z = 199.532

Definition at line 247 of file generate_icarus_geometry_splitwire.pl.

$FoamPadding = 60

Definition at line 285 of file generate_icarus_geometry_splitwire.pl.

$GaseousAr_y = 6.5

Definition at line 197 of file generate_icarus_geometry_splitwire.pl.

$Ground_y = 780.0

Definition at line 397 of file generate_icarus_geometry_splitwire.pl.

$Hall_x = 1890.0

Definition at line 351 of file generate_icarus_geometry_splitwire.pl.

$Hall_y = $Building_y + $ExpHall_y

Definition at line 352 of file generate_icarus_geometry_splitwire.pl.

$Hall_z = 3870.0

Definition at line 353 of file generate_icarus_geometry_splitwire.pl.

$HallWallThicnekss = 60

Definition at line 355 of file generate_icarus_geometry_splitwire.pl.

$inch = 2.54

Definition at line 76 of file generate_icarus_geometry_splitwire.pl.

$int_struct_x = $ext_struct_x

Definition at line 248 of file generate_icarus_geometry_splitwire.pl.

$int_struct_y = $ext_struct_y - 2*$struct_width

Definition at line 249 of file generate_icarus_geometry_splitwire.pl.

$int_struct_z = $ext_struct_z - 2*$struct_width

Definition at line 250 of file generate_icarus_geometry_splitwire.pl.

$LAr_x
$LAr_x_orig = 2*$LAr_x + 2*$AlumThickness + $CryoDist

Definition at line 209 of file generate_icarus_geometry_splitwire.pl.

$LAr_y
$LAr_z
$LArHalf_z = $TPCActiveHalf_z + $UpstreamLArPadding

Definition at line 188 of file generate_icarus_geometry_splitwire.pl.

$MaxDrift = 148.2

Definition at line 121 of file generate_icarus_geometry_splitwire.pl.

$MECH = ">" . $MECH

Definition at line 1854 of file generate_icarus_geometry_splitwire.pl.

$NumberPMT = 90

Definition at line 255 of file generate_icarus_geometry_splitwire.pl.

$OriginXSet = 0

Definition at line 342 of file generate_icarus_geometry_splitwire.pl.

$OriginYSet = 0

Definition at line 343 of file generate_icarus_geometry_splitwire.pl.

$OriginZSet = 0

Definition at line 344 of file generate_icarus_geometry_splitwire.pl.

$Overburden_x = 1830.0

Definition at line 364 of file generate_icarus_geometry_splitwire.pl.

$Overburden_y = $concrete_on

Definition at line 365 of file generate_icarus_geometry_splitwire.pl.

$Overburden_yDefault = 300

Definition at line 356 of file generate_icarus_geometry_splitwire.pl.

$Overburden_z = 3810.0

Definition at line 366 of file generate_icarus_geometry_splitwire.pl.

$PMT = ">" . $PMT

Definition at line 1769 of file generate_icarus_geometry_splitwire.pl.

$PMTGrid_offset = 2

Definition at line 260 of file generate_icarus_geometry_splitwire.pl.

$PMTPlane_x = 2*$PMTradius+$PMTGrid_offset+$PMTtube_x

Definition at line 267 of file generate_icarus_geometry_splitwire.pl.

$PMTPlane_y = $ext_struct_y + 6.

Definition at line 269 of file generate_icarus_geometry_splitwire.pl.

$PMTPlane_z = 9*$ext_struct_z + 2*$struct_width + 6.

Definition at line 271 of file generate_icarus_geometry_splitwire.pl.

$PMTradius = 4*$inch

Definition at line 257 of file generate_icarus_geometry_splitwire.pl.

$PMTradiusInner = $PMTradiusOuter - $PMTthickness

Definition at line 259 of file generate_icarus_geometry_splitwire.pl.

$PMTradiusOuter = 4*$inch

Definition at line 258 of file generate_icarus_geometry_splitwire.pl.

$PMTthickness = 0.5

Definition at line 256 of file generate_icarus_geometry_splitwire.pl.

$PMTtube_x = 2*$PMTtubeRmax

Definition at line 265 of file generate_icarus_geometry_splitwire.pl.

$PMTtubeRmax = 4.225

Definition at line 263 of file generate_icarus_geometry_splitwire.pl.

$PMTtubeRmin = 3.725

Definition at line 264 of file generate_icarus_geometry_splitwire.pl.

$PMTWiresOffset = 0.5

Definition at line 272 of file generate_icarus_geometry_splitwire.pl.

$PMTx = 0.557*$PMTradiusOuter

Definition at line 261 of file generate_icarus_geometry_splitwire.pl.

$posCat_x = 0

Definition at line 219 of file generate_icarus_geometry_splitwire.pl.

$posOverburden_x = $OriginXSet

Definition at line 370 of file generate_icarus_geometry_splitwire.pl.

$posOverburden_z = $OriginZSet

Definition at line 372 of file generate_icarus_geometry_splitwire.pl.

$posTPCActive0_x = 0.570000000000007

Definition at line 235 of file generate_icarus_geometry_splitwire.pl.

$posTPCActive_y = 0

Definition at line 237 of file generate_icarus_geometry_splitwire.pl.

$posTPCActive_z = $UpstreamLArPadding/2

Definition at line 238 of file generate_icarus_geometry_splitwire.pl.

$RACETRACK = "icarus_racetracks" . $suffix . ".gdml"

Definition at line 1549 of file generate_icarus_geometry_splitwire.pl.

$RTx_B = $RTx_T

Definition at line 1566 of file generate_icarus_geometry_splitwire.pl.

$RTx_D = $RTx_T

Definition at line 1569 of file generate_icarus_geometry_splitwire.pl.

$RTx_T = ($TPC_x - $RaceTrack_pitch -$RaceTrack_width )/2.

Definition at line 1565 of file generate_icarus_geometry_splitwire.pl.

$RTx_U = $RTx_T

Definition at line 1567 of file generate_icarus_geometry_splitwire.pl.

$RTy_B =-($RaceTrack_ly - $RaceTrack_thickness )/2. + $RT_epsilon

Definition at line 1564 of file generate_icarus_geometry_splitwire.pl.

print RACETRACK<<EOF; <?xml version='1.0'?><gdml> EOF $RTy_T = ($RaceTrack_ly - $RaceTrack_thickness )/2. + $RT_epsilon

Definition at line 1563 of file generate_icarus_geometry_splitwire.pl.

$RTz_B = 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2

Definition at line 1572 of file generate_icarus_geometry_splitwire.pl.

$RTz_D = -$RTz_U

Definition at line 1570 of file generate_icarus_geometry_splitwire.pl.

$RTz_T = 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2

Definition at line 1571 of file generate_icarus_geometry_splitwire.pl.

$RTz_U = -($RaceTrackT_length - $RaceTrack_thickness)/2. - $RT_epsilon + 45 - ($RaceTrackT_length - $TPCActiveHalf_z)/2

Definition at line 1568 of file generate_icarus_geometry_splitwire.pl.

$SinUAngle = sin( deg2rad($UAngle) )

Definition at line 90 of file generate_icarus_geometry_splitwire.pl.

$SinVAngle = sin( deg2rad($VAngle) )

Definition at line 94 of file generate_icarus_geometry_splitwire.pl.

$SpaceBottom = 18.0

Definition at line 291 of file generate_icarus_geometry_splitwire.pl.

$SpaceDownstream = 15.55

Definition at line 290 of file generate_icarus_geometry_splitwire.pl.

$SpaceTop = 22.4

Definition at line 288 of file generate_icarus_geometry_splitwire.pl.

$SpaceTPCToFloor = 36

Definition at line 128 of file generate_icarus_geometry_splitwire.pl.

$SpaceTPCToTopLAr = 29.5

Definition at line 129 of file generate_icarus_geometry_splitwire.pl.

$SpaceUpstream = 65.55

Definition at line 289 of file generate_icarus_geometry_splitwire.pl.

$SpaceWirePlToWall = 31.8

Definition at line 124 of file generate_icarus_geometry_splitwire.pl.

$SpaceWirePlToWirePl = 85

Definition at line 125 of file generate_icarus_geometry_splitwire.pl.

$struct_width = 10.

Definition at line 244 of file generate_icarus_geometry_splitwire.pl.

$TanUAngle = tan( deg2rad($UAngle) )

Definition at line 92 of file generate_icarus_geometry_splitwire.pl.

$TanVAngle = tan( deg2rad($VAngle) )

Definition at line 96 of file generate_icarus_geometry_splitwire.pl.

$ThermIns_x = 2*$Cryostat_x+2*$FoamPadding + 3*$CryoDist

Definition at line 294 of file generate_icarus_geometry_splitwire.pl.

$ThermIns_y = $Cryostat_y+2*$FoamPadding+$SpaceTop+$SpaceBottom

Definition at line 295 of file generate_icarus_geometry_splitwire.pl.

$ThermIns_z = $Cryostat_z+2*$FoamPadding+$SpaceUpstream+$SpaceDownstream

Definition at line 296 of file generate_icarus_geometry_splitwire.pl.

$ThermInsInDetEncl_x = 0

Definition at line 301 of file generate_icarus_geometry_splitwire.pl.

$ThermInsInDetEncl_y = -1*$DetEncl_yOffset

Definition at line 399 of file generate_icarus_geometry_splitwire.pl.

$ThermInsInDetEncl_z = 0

Definition at line 303 of file generate_icarus_geometry_splitwire.pl.

$TPC_x = $MaxDrift+ 6*$TPCWireThickness + 3*$WirePlaneSpacing + $CPA_x

Definition at line 171 of file generate_icarus_geometry_splitwire.pl.

$TPC_y = $LAr_y

Definition at line 192 of file generate_icarus_geometry_splitwire.pl.

$TPC_z = $LAr_z

Definition at line 193 of file generate_icarus_geometry_splitwire.pl.

$TPCActive_x = $MaxDrift

Definition at line 149 of file generate_icarus_geometry_splitwire.pl.

$TPCActive_y = $CommonWireLength * $SinUAngle + 0.02

Definition at line 150 of file generate_icarus_geometry_splitwire.pl.

$TPCActive_z = $CommonWireLength * $CosUAngle + (4640 - 1) * $UWire_zpitch - 0.000000000002

Definition at line 156 of file generate_icarus_geometry_splitwire.pl.

$TPCActiveHalf_z = $TPCActive_z/2

Definition at line 157 of file generate_icarus_geometry_splitwire.pl.

$TPCHalf_z = $LArHalf_z

Definition at line 194 of file generate_icarus_geometry_splitwire.pl.

$TPCinCryo_x[1] = - $TPC_x/2 - $CPA_x/2

Definition at line 214 of file generate_icarus_geometry_splitwire.pl.

$TPCinCryo_y = -$GaseousAr_y/2

Definition at line 227 of file generate_icarus_geometry_splitwire.pl.

$TPCinCryo_z = 0.

Definition at line 228 of file generate_icarus_geometry_splitwire.pl.

$TPCinCryo_zneg = (-$TPCHalf_z/2)

Definition at line 232 of file generate_icarus_geometry_splitwire.pl.

$TPCinCryo_zpos = ( $TPCHalf_z/2)

Definition at line 233 of file generate_icarus_geometry_splitwire.pl.

$TPCWirePlane_x = 2*$TPCWireThickness

Definition at line 162 of file generate_icarus_geometry_splitwire.pl.

$TPCWirePlane_y = $TPCActive_y

Definition at line 163 of file generate_icarus_geometry_splitwire.pl.

$TPCWirePlane_z = $TPCActive_z

Definition at line 164 of file generate_icarus_geometry_splitwire.pl.

$TPCWirePlaneHalf_z = $TPCActiveHalf_z

Definition at line 165 of file generate_icarus_geometry_splitwire.pl.

$TPCWireRadius = $TPCWireThickness /2

Definition at line 110 of file generate_icarus_geometry_splitwire.pl.

$TPCWireThickness = 0.015

Definition at line 109 of file generate_icarus_geometry_splitwire.pl.

$UAngle = 60

Definition at line 87 of file generate_icarus_geometry_splitwire.pl.

$UpstreamLArPadding = 90.0

Definition at line 132 of file generate_icarus_geometry_splitwire.pl.

$UWire_ypitch = $UWirePitch / $CosUAngle

Definition at line 100 of file generate_icarus_geometry_splitwire.pl.

$UWire_zpitch = $UWirePitch / $SinUAngle

Definition at line 101 of file generate_icarus_geometry_splitwire.pl.

$UWirePitch = 0.3

Definition at line 82 of file generate_icarus_geometry_splitwire.pl.

$VAngle = 60

Definition at line 88 of file generate_icarus_geometry_splitwire.pl.

$VWire_ypitch = $VWirePitch / $CosVAngle

Definition at line 105 of file generate_icarus_geometry_splitwire.pl.

$VWire_zpitch = $VWirePitch / $SinVAngle

Definition at line 106 of file generate_icarus_geometry_splitwire.pl.

$VWirePitch = 0.3

Definition at line 83 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_CenterToFloor = $WarmVessel_FootHeight + $WarmVessel_FloorSpace + $WarmVessel_y/2

Definition at line 382 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_FloorSpace = 10.16

Definition at line 381 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_FootHeight = 6.0

Definition at line 380 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_x = $ThermIns_x+2*$WarmVesselThickness_x

Definition at line 307 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_y = $ThermIns_y+2*$WarmVesselThickness

Definition at line 308 of file generate_icarus_geometry_splitwire.pl.

$WarmVessel_z = $ThermIns_z+2*$WarmVesselThickness

Definition at line 309 of file generate_icarus_geometry_splitwire.pl.

$WarmVesselInDetEncl_x = 0

Definition at line 311 of file generate_icarus_geometry_splitwire.pl.

$WarmVesselInDetEncl_y = $ThermInsInDetEncl_y

Definition at line 400 of file generate_icarus_geometry_splitwire.pl.

$WarmVesselInDetEncl_z = 0

Definition at line 313 of file generate_icarus_geometry_splitwire.pl.

$WarmVesselThickness = 27.4

Definition at line 286 of file generate_icarus_geometry_splitwire.pl.

$WarmVesselThickness_x = 21.8

Definition at line 287 of file generate_icarus_geometry_splitwire.pl.

$WirePlaneSpacing = 0.3

Definition at line 120 of file generate_icarus_geometry_splitwire.pl.

$World_x = 1e4

Definition at line 387 of file generate_icarus_geometry_splitwire.pl.

$World_y = 1e4

Definition at line 388 of file generate_icarus_geometry_splitwire.pl.

$World_z = 1e4

Definition at line 389 of file generate_icarus_geometry_splitwire.pl.

print RACETRACK<<EOF; </volume> EOF print RACETRACK<<EOF;<!--+++++++++++++++++ RACETRACK Upstream Volume ++++++++++++++++++++--><volumename="volRaceTrackUVolume"><materialrefref="LAr"/><solidrefref="RaceTrackUVolume"/> EOF $xTpos =-($RaceTrack_width - $RaceTrack_pitch - $RT_epsilon )/2.

Definition at line 1670 of file generate_icarus_geometry_splitwire.pl.

$YWirePitch = 0.3

Definition at line 81 of file generate_icarus_geometry_splitwire.pl.

else
Initial value:
{
$suffix = "-" . $suffix

Definition at line 39 of file generate_icarus_geometry_splitwire.pl.

*echo Unrecognized option dohelp exit

Definition at line 430 of file generate_icarus_geometry_splitwire.pl.

print PMT<<EOF;<?xml version='1.0'?><gdml> EOF print PMT<<EOF;<!--+++++++++++++++++++ PMT Solids ++++++++++++++++++++++--> EOF print PMT<<EOF;<solids><spherename="PMTVolume"rmin="$PMTradiusInner"rmax="$PMTradiusOuter"deltaphi="360"deltatheta="90"aunit="deg"lunit="cm"/><spherename="PMTPassSphere"rmin="$PMTradiusInner"rmax="$PMTradiusOuter"deltaphi="360"deltatheta="90"aunit="deg"lunit="cm"/><tubename="PMTPassTube"rmax="$PMTtubeRmax"rmin="$PMTtubeRmin"z="$PMTtube_x"deltaphi="360"aunit="deg"lunit="cm"/><unionname="PMTPassVolume"><firstref="PMTPassSphere"/><secondref="PMTPassTube"/><positionrefref="PMTtube"/><rotationrefref="rMinus90AboutZ"/></union></solids> EOF print PMT<<EOF;<structure><!--+++++++++++++++++PMTLogicalVolumes++++++++++++++++++++--><volumename="volOpDetSensitive"><materialrefref="LAr"/><solidrefref="PMTVolume"/></volume><volumename="volNotOpDetSensitive"><materialrefref="Glass"/><solidrefref="PMTPassVolume"/></volume></structure> EOF print PMT<<EOF;</gdml> EOF sub gen_Mech_Structure
Initial value:
{
$MECH = "icarus_Mech_Structure" . $suffix . ".gdml"

Definition at line 1850 of file generate_icarus_geometry_splitwire.pl.

print RACETRACK<<EOF; </volume> EOF print RACETRACK<<EOF;<!--+++++++++++++++++ RACETRACK end structure +++++++++++++++++++--></structure> EOF print RACETRACK<<EOF;</gdml> EOF sub gen_PMT
Initial value:
{
$PMT = "icarus_pmt" . $suffix . ".gdml"

Definition at line 1765 of file generate_icarus_geometry_splitwire.pl.

sub gen_RaceTracks
Initial value:
{
#define the
define_RaceTrack()

Definition at line 1543 of file generate_icarus_geometry_splitwire.pl.