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

Go to the source code of this file.

Macros

#define the   solids
 

Functions

 GetOptions ("input|i:s"=>\$input,"help|h"=>\$help,"suffix|s:s"=>\$suffix,"output|o:s"=>\$output)
 
 if (defined $help)
 
 if (!defined $suffix)
 
foreach $parameter ($xmldata->findnodes('/parameters/geometry/parameter'))
 
 gen_defs ()
 
 gen_rotations ()
 
 gen_materials ()
 
 gen_tpcplanevert ()
 
 gen_tpcplane ()
 
 gen_groundplate ()
 
 gen_cathode ()
 
 gen_fieldcage ()
 
 gen_tpc ()
 
 if ($pmt_switch eq"on")
 
 gen_cryostat ()
 
 gen_enclosure ()
 
 gen_world ()
 
 write_fragments ()
 
sub usage ()
 
 push (@gdmlFiles, $PMT)
 
 open (PMT) or die("Could not open file $PMT for writing")
 

Variables

 else
 
 $parser = new XML::LibXML
 
 $xmldata = $parser->parse_file($input)
 
 $SinUVAngle = sin( deg2rad($UVAngle) )
 
 $CosUVAngle = cos( deg2rad($UVAngle) )
 
 $TanUVAngle = tan( deg2rad($UVAngle) )
 
 $wires_on =1
 
 $wire_int =20
 
 $NumberOfTPCPlanes =3
 
 $tpc_neg_length =1000
 
 $tpc_neg_width =200
 
 $tpc_neg_height =200
 
 $wire_frame_width =9.5
 
 $wire_plane_height =240
 
 $wire_plane_length =1042
 
 $wires_plength =($wire_plane_length - 2*$wire_frame_width)
 
 $wires_pwidth =($wire_plane_height - 2*$wire_frame_width)
 
 $field_cage_width = 200
 
 $field_cage_height = 180
 
 $field_cage_cross_length = sqrt(($field_cage_width)**2+($field_cage_height-50)**2)
 
 $field_cage_length = 1000
 
 $field_cage_loop_interval = 1
 
 $spacers_on_off = "off"
 
 $electronics_height =12
 
 $pmt_switch ="off"
 
 exit
 
sub gen_pmt
 
 $PMT = ">" . $PMT
 

Macro Definition Documentation

#define the   solids

Function Documentation

foreach $parameter (   $xmldata->'/parameters/geometry/parameter')

Definition at line 48 of file generate_gdml_simple.pl.

49 {
50  # Get the name and value attributes for that parameter:
51  $name = $parameter->getAttribute("name");
52  $value = $parameter->getAttribute("value");
53 
54  # Here's the clever part: The following eval creates a variable
55  # with the same name as $name. For example, if $name eq "TPCDepth",
56  # then the following statement assigns the value to $TPCDepth. The
57  # value is in quotes, because some of the parameters have text
58  # strings in them (like "kInch").
59 
60  eval "\$$name = '$value'";
61 }
foreach $parameter($xmldata->findnodes('/parameters/geometry/parameter'))
sub gen_cathode ( )

Definition at line 586 of file generate_gdml_simple.pl.

586  {
587 
588  $CATHODE = "microboone/micro-cathode" . $suffix . ".gdml";
589  push (@gdmlFiles, $CATHODE); # Add file to list of GDML fragments
590  $CATHODE = ">" . $CATHODE;
591  open(CATHODE) or die("Could not open file $CATHODE for writing");
592 
593  print CATHODE <<EOF;
594 
595 <?xml version='1.0'?>
596 <gdml>
597 <solids>
598  <box name="CathodePlate"
599  lunit="cm"
600  x="kCathodePlateDepth"
601  y="kCathodeHeight"
602  z="kCathodeLength"/>
603 </solids>
604 <structure>
605  <volume name="volCathodePlate">
606  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
607  <solidref ref="CathodePlate"/>
608  </volume>
609 </structure>
610 </gdml>
611 EOF
612 
613 }
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
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
gen_cryostat ( )
sub gen_defs ( )

Definition at line 129 of file generate_gdml_simple.pl.

130 {
131  # Set up the output file.
132  $CONSTANTS = "microboone/micro-defs" . $suffix . ".gdml";
133  push (@gdmlFiles, $CONSTANTS); # Add file to list of constant files
134  $CONSTANTS = ">" . $CONSTANTS;
135  open(CONSTANTS) or die("Could not open file $CONSTANTS for writing");
136 
137  # Create some math constants.
138  my $pi = pi;
139 
140  # Though it's not strictly necessary, make each sub-file a valid
141  # XML (if not GDML) document; that makes it accessible to an XML
142  # parser if needed.
143 
144  # Here is a neat way to print out a block of text without getting
145  # involved in a lot of messy quoting and formatting with print
146  # statements.
147 
148  print CONSTANTS <<EOF;
149 <?xml version='1.0'?>
150 <define>
151 <constant name="kInch" value="2.54" />
152 <constant name="kPi" value="$pi" />
153 <constant name="kDetEnclosureWidth" value="$DetEnclosureWidth" />
154 <constant name="kDetEnclosureHeight" value="$DetEnclosureHeight" />
155 <constant name="kDetEnclosureLength" value="$DetEnclosureLength" />
156 <constant name="kDirtThickness" value="$DirtThickness" />
157 <constant name="kWorldW" value="100.0*kDetEnclosureWidth"/>
158 <constant name="kWorldH" value="100.0*kDetEnclosureHeight"/>
159 <constant name="kWorldL" value="100.0*kDetEnclosureLength"/>
160 
161 <constant name="kTPCWidth" value="$TPCWidth" />
162 <constant name="kTPCLength" value="$TPCLength" />
163 <constant name="kTPCDepth" value="$TPCDepth" />
164 <constant name="kTPCWallThickness" value="$TPCWallThickness" />
165 
166 <constant name="kTPCWirePlaneThickness" value="$TPCWirePlaneThickness" />
167 <constant name="kTPCWireThickness" value="$TPCWireThickness" />
168 <constant name="kTPCWirePlaneWidth" value="$wires_pwidth" />
169 <constant name="kTPCWirePlaneLength" value="$wires_plength" />
170 <constant name="kWireFrameDepth" value="9" />
171 <constant name="kWireFrameWidth" value="$wire_frame_width" />
172 <constant name="kWirePlaneHeight" value="$wire_plane_height" />
173 <constant name="kWirePlaneLength" value="$wire_plane_length" />
174 <constant name="kWireFrameVInHeight" value="0.5*(kWirePlaneHeight-3*kWireFrameWidth)" />
175 
176 <constant name="kTPCWirePitch" value="$TPCWirePitch"/>
177 <constant name="kSinUVAngle" value="$SinUVAngle"/>
178 <constant name="kCosUVAngle" value="$CosUVAngle"/>
179 <constant name="kTanUVAngle" value="$TanUVAngle"/>
180 <constant name="kTPCWireXPitch" value="kTPCWirePitch/kCosUVAngle"/>
181 
182 <constant name="kCathodeFrameWidth" value="9" />
183 <constant name="kCathodeFrameDepth" value="5" />
184 <constant name="kCathodePlateDepth" value="0.1" />
185 <constant name="kCathodeWidth" value="5.1" />
186 <constant name="kCathodeHeight" value="240" />
187 <constant name="kCathodeLength" value="1042" />
188 <constant name="kCathodeFrameVInHeight" value="0.5*(kCathodeHeight-3*kCathodeFrameWidth)" />
189 
190 <constant name="kGroundPlateWidth" value="224" />
191 <constant name="kGroundPlateHeight" value="0.1" />
192 <constant name="kGroundPlateLength" value="1100" />
193 <constant name="kGroundBeamWidth" value="2.5" />
194 <constant name="kGroundBeamHeight" value="2.5" />
195 <constant name="kGroundBeamLength" value="kGroundPlateLength" />
196 <constant name="kGroundBeamThickness" value=".15" />
197 </define>
198 EOF
199 
200  close(CONSTANTS);
201 }
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
my($xml, $fcl, $workdir, $check, $merge)
for($it=0;$it< $RaceTrack_number;$it++)
pdgs pi
Definition: selectors.fcl:22
then echo fcl name
temporary value
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_enclosure ( )

Definition at line 998 of file generate_gdml_simple.pl.

999 {
1000  # Set up the output file.
1001  $GDML = "micro-enclosure" . $suffix . ".gdml";
1002  push (@gdmlFiles, $GDML); # Add file to list of GDML fragments
1003  $GDML = ">" . $GDML;
1004  open(GDML) or die("Could not open file $GDML for writing");
1005 
1006  print GDML <<EOF;
1007 <?xml version='1.0'?>
1008 <gdml>
1009 <solids>
1010  <box name="DetEnclosure" lunit="cm"
1011  x="kDetEnclosureWidth" y="$CryostatRadius" z="kDetEnclosureLength"
1012  />
1013 </solids>
1014 
1015 <structure>
1016  <volume name="volDetEnclosure">
1017  <materialref ref="Air"/>
1018  <solidref ref="DetEnclosure"/>
1019  <physvol>
1020  <volumeref ref="volCryostat"/>
1021  <position name="posCryostat" unit="cm" x="0" y="0" z="0"/>
1022  </physvol>
1023  </volume>
1024 </structure>
1025 </gdml>
1026 EOF
1027 
1028  close(GDML);
1029 }
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_fieldcage ( )

Definition at line 491 of file generate_gdml_simple.pl.

491  {
492 
493  # Set up the output file.
494  $FIELDCAGE = "microboone/micro-fieldcage.gdml";
495  push (@gdmlFiles, $FIELDCAGE); # Add file to list of constant files
496  $FIELDCAGE = ">" . $FIELDCAGE;
497  open(FIELDCAGE) or die("Could not open file $FIELDCAGE for writing");
498 
499  # Print the Field Cage constants
500  print FIELDCAGE <<EOF;
501 <define>
502  <constant name="kFieldCageTPCClearance" value="5*kInch" />
503 
504  <constant name="kFieldCageTubeRadius" value="0.5*kInch" />
505  <constant name="kFieldCageTubeThickness" value="0.25*kInch" />
506  <constant name="kFieldCageBeamDepth" value="12.5"/>
507  <constant name="kFieldCageBeamWidth" value="2.5"/>
508  <constant name="kFieldCageCrossDepth" value="2.5"/>
509  <constant name="kFieldCageCrossWidth" value="4"/>
510  <constant name="kFieldCageCrossLength" value="$field_cage_cross_length"/>
511 
512  <constant name="kTPCTotalLength" value="$field_cage_length"/>
513  <constant name="kTPCTotalWidth" value="$field_cage_width"/>
514  <constant name="kTPCTotalHeight" value="$field_cage_height"/>
515 
516  <constant name="kFieldCageLoopLength" value="kTPCTotalLength+2*(kFieldCageTPCClearance+2*kFieldCageTubeRadius)"/>
517  <constant name="kFieldCageLoopWidth" value="$field_cage_width"/>
518  <constant name="kFieldCageLoopHeight" value="kTPCTotalHeight+2*(kFieldCageTPCClearance+2*kFieldCageTubeRadius)"/>
519 
520  <constant name="kFieldCageCornerRadius" value="0.5*kFieldCageTPCClearance"/>
521  <constant name="kFieldCageCornerY" value="(0.5*kFieldCageLoopHeight)-kFieldCageCornerRadius-kFieldCageTubeRadius"/>
522  <constant name="kFieldCageCornerZ" value="(0.5*kFieldCageLoopLength)-kFieldCageCornerRadius-kFieldCageTubeRadius"/>
523 
524  <constant name="kFieldCageHeight" value="kFieldCageLoopHeight+2*(kFieldCageBeamDepth+kFieldCageCrossDepth)"/>
525  <constant name="kFieldCageLength" value="kFieldCageLoopLength+2*(kFieldCageBeamDepth+kFieldCageCrossDepth)"/>
526  <constant name="kFieldCageWidth" value="$field_cage_width"/>
527 
528  <constant name="kFieldCageBeamYInt" value="0.5*(kFieldCageLoopHeight-50)"/>
529  <constant name="kFieldCageBeamZPos" value="0.5*(kFieldCageLoopLength)"/>
530  <constant name="kFieldCageBeamYPos" value="0.5*(kFieldCageLoopHeight)"/>
531  <constant name="kFieldCageBeamZInt" value="0.5*(kFieldCageLoopLength-40)"/>
532 
533  <constant name="kFieldCageCrossYPos" value="0.5*(kFieldCageLoopHeight+kFieldCageCrossDepth)+kFieldCageBeamDepth"/>
534  <constant name="kFieldCageCrossZPos" value="0.5*(kFieldCageLoopLength+kFieldCageCrossDepth)+kFieldCageBeamDepth"/>
535 </define>
536 EOF
537 
538  # Prints Field Cage solids
539  print FIELDCAGE <<EOF;
540 <solids>
541  <tube name="FieldCageTubeZ"
542  rmin="kFieldCageTubeRadius - kFieldCageTubeThickness"
543  rmax="kFieldCageTubeRadius"
544  z="kFieldCageLoopLength-2*(kFieldCageCornerRadius+kFieldCageTubeRadius)"
545  deltaphi="2*kPi"
546  aunit="rad"
547  lunit="cm"/>
548  <tube name="FieldCageTubeY"
549  rmin="kFieldCageTubeRadius - kFieldCageTubeThickness"
550  rmax="kFieldCageTubeRadius"
551  z="kFieldCageLoopHeight-2*(kFieldCageCornerRadius+kFieldCageTubeRadius)"
552  deltaphi="2*kPi"
553  aunit="rad"
554  lunit="cm"/>
555 </solids>
556 EOF
557 
558  # Prints Field Cage tube loop sub-structure
559  print FIELDCAGE <<EOF;
560 <structure>
561  <volume name="volFieldCageTubeTop">
562  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
563  <solidref ref="FieldCageTubeZ"/>
564  </volume>
565  <volume name="volFieldCageTubeBot">
566  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
567  <solidref ref="FieldCageTubeZ"/>
568  </volume>
569  <volume name="volFieldCageTubeFront">
570  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
571  <solidref ref="FieldCageTubeY"/>
572  </volume>
573  <volume name="volFieldCageTubeBack">
574  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
575  <solidref ref="FieldCageTubeY"/>
576  </volume>
577 </structure>
578 EOF
579 
580 close(FIELDCAGE);
581 
582 }
process_name opflash particleana ie ie ie z
* file
Definition: file_to_url.sh:69
do one_file $F done echo for F in find $TOP name CMakeLists txt print
for($it=0;$it< $RaceTrack_number;$it++)
then echo fcl name
temporary value
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_groundplate ( )

Definition at line 615 of file generate_gdml_simple.pl.

615  {
616 #this subroutine will produce the gdml fragment for ground plate
617 
618  $GROUNDPLATE = "microboone/micro-groundplate" . $suffix . ".gdml";
619  push (@gdmlFiles, $GROUNDPLATE); # Add file to list of GDML fragments
620  $GROUNDPLATE = ">" . $GROUNDPLATE;
621  open(GROUNDPLATE) or die("Could not open file $GROUNDPLATE for writing");
622 
623  print GROUNDPLATE <<EOF;
624 <?xml version='1.0'?>
625 <gdml>
626 <solids>
627  <box name="GroundPlate"
628  lunit="cm"
629  x="kGroundPlateWidth"
630  y="kGroundPlateHeight"
631  z="kGroundPlateLength"/>
632 </solids>
633 <structure>
634  <volume name="volGroundPlate">
635  <materialref ref="STEEL_STAINLESS_Fe7Cr2Ni"/>
636  <solidref ref="GroundPlate"/>
637  </volume>
638 </structure>
639 </gdml>
640 EOF
641 
642  close(GROUNDPLATE);
643 }
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_materials ( )

Definition at line 251 of file generate_gdml_simple.pl.

252 {
253  # Create the materials file name and open it.
254  $MATERIALS = "materials" . $suffix . ".gdml";
255  push (@gdmlFiles, $MATERIALS); # Add file to list of GDML fragments
256  $MATERIALS = ">" . $MATERIALS;
257  open(MATERIALS) or die("Could not open file $MATERIALS for writing");
258 
259  # Write the standard XML prefix.
260  print MATERIALS <<EOF;
261 <?xml version='1.0'?>
262 EOF
263 
264  # Go back the DOM structure read in near the beginning of the
265  # program. For each <materials /> element (and there'll probably
266  # be only one):
267  foreach $materials ( $xmldata->findnodes('/parameters/materials') )
268  {
269  # Convert that element back to text, and write it out.
270  print MATERIALS $materials->toString;
271  }
272 
273  close (MATERIALS);
274 }
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
for($it=0;$it< $RaceTrack_number;$it++)
print OUTPUT<< EOF;< setup name="Default"version="1.0">< worldref="volWorld"/></setup ></gdml > EOF close(OUTPUT)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_rotations ( )

Definition at line 204 of file generate_gdml_simple.pl.

205 {
206  my $WirePlusRotation = $UVAngle + 90;
207  my $WireMinusRotation = $UVAngle - 90;
208 
209  $ROTATIONS = "microboone/micro-rotations" . $suffix . ".gdml";
210  push (@gdmlFiles, $ROTATIONS); # Add file to list of GDML fragments
211  $ROTATIONS = ">" . $ROTATIONS;
212  open(ROTATIONS) or die("Could not open file $ROTATIONS for writing");
213 
214  print ROTATIONS <<EOF;
215 <?xml version='1.0'?>
216 <define>
217  <rotation name="rPlus30AboutX" unit="deg" x="30" y="0" z="0"/>
218  <rotation name="rPlus60AboutX" unit="deg" x="60" y="0" z="0"/>
219  <rotation name="rPlus90AboutX" unit="deg" x="90" y="0" z="0"/>
220  <rotation name="rMinus90AboutX" unit="deg" x="-90" y="0" z="0"/>
221  <rotation name="rPlusUVAngleAboutX" unit="deg" x="150" y="0" z="0"/>
222  <rotation name="rPlus150AboutX" unit="deg" x="150" y="0" z="0"/>
223  <rotation name="rPlus180AboutX" unit="deg" x="180" y="0" z="0"/>
224  <rotation name="rMinusUVAngleAboutX" unit="deg" x="-30" y="0" z="0"/>
225  <rotation name="rPlus30AboutY" unit="deg" x="0" y="30" z="0"/>
226  <rotation name="rPlus60AboutY" unit="deg" x="0" y="60" z="0"/>
227  <rotation name="rPlus90AboutY" unit="deg" x="0" y="90" z="0"/>
228  <rotation name="rPlus180AboutY" unit="deg" x="0" y="180" z="0"/>
229  <rotation name="rMinus90AboutY" unit="deg" x="0" y="-90" z="0"/>
230  <rotation name="rPlus90AboutZ" unit="deg" x="0" y="0" z="90"/>
231  <rotation name="rMinus90AboutZ" unit="deg" x="0" y="0" z="-90"/>
232  <rotation name="rPlus180AboutZ" unit="deg" x="0" y="0" z="180"/>
233  <rotation name="rMinus180AboutZ" unit="deg" x="0" y="0" z="-180"/>
234  <rotation name="rMinus90AboutYPlus180AboutZ" unit="deg" x="0" y="-90" z="180"/>
235  <rotation name="rMinus90AboutYMinus90AboutZ" unit="deg" x="0" y="-90" z="-90"/>
236  <rotation name="rPlus90AboutYPlus180AboutZ" unit="deg" x="0" y="90" z="180"/>
237  <rotation name="rMinus90AboutYPlus90AboutZ" unit="deg" x="0" y="-90" z="90"/>
238  <rotation name="rPlus90AboutYMinus90AboutZ" unit="deg" x="0" y="90" z="-90"/>
239  <rotation name="rPlus90AboutXPlus90AboutZ" unit="deg" x="90" y="0" z="90"/>
240  <rotation name="rPlus90AboutXPlus180AboutZ" unit="deg" x="90" y="0" z="180"/>
241  <rotation name="rPlus90AboutXMinus90AboutY" unit="deg" x="90" y="-90" z="0"/>
242  <rotation name="rPlus90AboutXMinus90AboutZ" unit="deg" x="90" y="0" z="-90"/>
243  <rotation name="rPlus90AboutXPlus90AboutY" unit="deg" x="90" y="90" z="0"/>
244  <rotation name="rPMTRotation1" unit="deg" x="90" y="270" z="0"/>
245 </define>
246 EOF
247  close (ROTATIONS);
248 }
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
my($xml, $fcl, $workdir, $check, $merge)
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_tpc ( )

Definition at line 647 of file generate_gdml_simple.pl.

648 {
649  # Set up the output file.
650  $GDML = "microboone/micro-tpc" . $suffix . ".gdml";
651  push (@gdmlFiles, $GDML); # Add file to list of GDML fragments
652  $GDML = ">" . $GDML;
653  open(GDML) or die("Could not open file $GDML for writing");
654 
655  print GDML <<EOF;
656 <?xml version='1.0'?>
657 <gdml>
658 <solids>
659  <box name="TPC"
660  lunit="cm"
661  x="kTPCDepth+kTPCWallThickness+(2*kTPCWirePlaneThickness)"
662  y="kTPCWidth+(2*kTPCWallThickness)+($electronics_height)"
663  z="kTPCLength+(2*kTPCWallThickness)"/>
664 </solids>
665 <structure>
666  <volume name="volTPC">
667  <materialref ref="LAr"/>
668  <solidref ref="TPC"/>
669 EOF
670 
671  # Ground Plane physical volumes
672  # Center = (9,124,0)
673  $ground_plate_X=9;
674  $ground_plate_Y=124;
675  $ground_plate_Z=0;
676 
677  print GDML <<EOF;
678  <physvol>
679  <volumeref ref="volGroundPlate"/>
680  <position name="posGroundPlate" unit="cm" x="$ground_plate_X+0.25" y="$ground_plate_Y-0.5*(kGroundBeamHeight)" z="0"/>
681  </physvol>
682 EOF
683 
684 
685  # Cathode Plane physical volumes
686  # Center = (0.5*(kTPCWidth-kCathodeWidth),0,0)
687  $Cathode_X="0.5*(kTPCWidth-kCathodeWidth)";
688  $Cathode_plate_offset="0.5*kCathodePlateDepth";
689  $Cathode_frame_position="$Cathode_X+($Cathode_plate_offset)";
690 
691  print GDML <<EOF;
692  <physvol>
693  <volumeref ref="volCathodePlate"/>
694  <position name="posCathodePlate" unit="cm" x="$Cathode_X-0.5*(kCathodeFrameDepth)-0.1" y="0" z="0"/>
695  </physvol>
696 EOF
697 
698 
699  # Wire Plane physical volumes
700  # Center = ( -0.5*(kTPCWidth-kWireFrameWidth) , 0 , 0 )
701  print GDML <<EOF;
702  <physvol>
703  <volumeref ref="volTPCPlaneVert"/>
704  <position name="posTPCPlaneVert" unit="cm" x="-0.5*(kTPCWidth-kWireFrameWidth)-(2*$TPCWirePlaneSpacing)" y="0" z="0"/>
705  </physvol>
706  <physvol>
707  <volumeref ref="volTPCPlane"/>
708  <position name="posTPCPlane" unit="cm" x="-0.5*(kTPCWidth-kWireFrameWidth)-$TPCWirePlaneSpacing" y="0" z="0"/>
709  </physvol>
710  <physvol>
711  <volumeref ref="volTPCPlane"/>
712  <position name="posTPCPlane2" unit="cm" x="-0.5*(kTPCWidth-kWireFrameWidth)" y="0" z="0"/>
713  <rotationref ref="rPlus180AboutY"/>
714  </physvol>
715 EOF
716 
717 
718 $space=0;
719 $i=1;
720 while ( $space < ( $field_cage_width / 2 ) ) {
721  $xPos=$space+2;
722  print GDML <<EOF;
723  <physvol>
724  <volumeref ref="volFieldCageTubeTop"/>
725  <position name="posFieldCageTubeTopA$i" unit="cm" x="$xPos" y="0.5*(kFieldCageLoopHeight-2*kFieldCageTubeRadius)" z="0"/>
726  </physvol>
727  <physvol>
728  <volumeref ref="volFieldCageTubeBot"/>
729  <position name="posFieldCageTubeBotA$i" unit="cm" x="$xPos" y="-0.5*(kFieldCageLoopHeight-2*kFieldCageTubeRadius)" z="0"/>
730  </physvol>
731  <physvol>
732  <volumeref ref="volFieldCageTubeFront"/>
733  <position name="posFieldCageTubeFrontA$i" unit="cm" x="$xPos" y="0" z="0.5*(kFieldCageLoopLength-2*kFieldCageTubeRadius)"/>
734  <rotation name="rFieldCageVertPlusA$i" unit="deg" x="90" y="0" z="0"/>
735  </physvol>
736  <physvol>
737  <volumeref ref="volFieldCageTubeBack"/>
738  <position name="posFieldCageTubeBackA$i" unit="cm" x="$xPos" y="0" z="-0.5*(kFieldCageLoopLength-2*kFieldCageTubeRadius)"/>
739  <rotation name="rFieldCageVertMinusA$i" unit="deg" x="-90" y="0" z="0"/>
740  </physvol>
741 EOF
742  print GDML <<EOF;
743  <physvol>
744  <volumeref ref="volFieldCageTubeTop"/>
745  <position name="posFieldCageTubeTopB$i" unit="cm" x="-$xPos" y="0.5*(kFieldCageLoopHeight-2*kFieldCageTubeRadius)" z="0"/>
746  </physvol>
747  <physvol>
748  <volumeref ref="volFieldCageTubeBot"/>
749  <position name="posFieldCageTubeBotB$i" unit="cm" x="-$xPos" y="-0.5*(kFieldCageLoopHeight-2*kFieldCageTubeRadius)" z="0"/>
750  </physvol>
751  <physvol>
752  <volumeref ref="volFieldCageTubeFront"/>
753  <position name="posFieldCageTubeFrontB$i" unit="cm" x="-$xPos" y="0" z="0.5*(kFieldCageLoopLength-2*kFieldCageTubeRadius)"/>
754  <rotation name="rFieldCageVertFrontB$i" unit="deg" x="90" y="0" z="0"/>
755  </physvol>
756  <physvol>
757  <volumeref ref="volFieldCageTubeBack"/>
758  <position name="posFieldCageTubeBackB$i" unit="cm" x="-$xPos" y="0" z="-0.5*(kFieldCageLoopLength-2*kFieldCageTubeRadius)"/>
759  <rotation name="rFieldCageVertBackB$i" unit="deg" x="-90" y="0" z="0"/>
760  </physvol>
761 EOF
762  $space+=4*$field_cage_loop_interval;
763  $i++;
764 }
765 
766 
767 
768  # Closes TPC volume definition space
769  print GDML <<EOF;
770  </volume>
771 </structure>
772 </gdml>
773 EOF
774 
775  close(GDML);
776 }
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
BEGIN_PROLOG TPC
$field_cage_width
process_name opflash particleana ie ie y
$electronics_height
$field_cage_loop_interval
for($it=0;$it< $RaceTrack_number;$it++)
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_tpcplane ( )

Definition at line 351 of file generate_gdml_simple.pl.

352 {
353 
354 #### temporary edits
355 #### - my $NumberWires = $TPCLength / $TPCWirePitch - 1;
356 #### - my $NumberWiresPerEdge = int( $TPCLength / $TPCYWirePitch );
357 #### - my $NumberSideWires = int( $TanUVAngle * $TPCWidth / $TPCYWirePitch );
358 #### - <tube name="TPCWireCommon" rmax="0.5*kTPCWireThickness" z="kTPCWidth/kCosUVAngle" deltaphi="2*kPi" aunit="rad" lunit="cm"/>
359 #### - <box name="TPCPlane" x="kTPCWirePlaneThickness" y="kTPCWidth" z="kTPCLength" lunit="cm"/>
360 
361  my $NumberWires = ( $wires_plength ) / $TPCWirePitch - 1;
362 
363  $GDML = "microboone/micro-plane" . $suffix . ".gdml";
364  push (@gdmlFiles, $GDML); # Add file to list of GDML fragments
365  $GDML = ">" . $GDML;
366  open(GDML) or die("Could not open file $GDML for writing");
367 
368  # Calculate the number of wire ends on a given y-edge of the plane.
369  my $TPCYWirePitch = $TPCWirePitch / $CosUVAngle;
370  my $NumberWiresPerEdge = int( ( $wires_plength ) / $TPCYWirePitch );
371 
372  # How many side wires will be "cut off" by the lower or higher
373  # z-edge?
374  my $NumberSideWires = int( $TanUVAngle * ( $wires_pwidth ) / $TPCYWirePitch );
375 
376  # The number of full-length "center" wires.
377  my $NumberCenterWires = $NumberWiresPerEdge - $NumberSideWires;
378 
379  # define the solids
380  print GDML <<EOF;
381 <?xml version='1.0'?>
382 <gdml>
383 <solids>
384 EOF
385 
386  # wires on either end of the tpc
387  for($i = 0; $i < $NumberSideWires; ++$i)
388  {
389  print GDML <<EOF;
390 <tube name="TPCWire$i"
391  rmax="0.5*kTPCWireThickness"
392  z="kTPCWireXPitch*($i+1)/kSinUVAngle"
393  deltaphi="2*kPi"
394  aunit="rad"
395  lunit="cm"/>
396 EOF
397  }
398 
399  # The solids for the middle wire and the TPC wire plane, and start off the structures.
400  print GDML <<EOF;
401 <tube name="TPCWireCommon"
402  rmax="0.5*kTPCWireThickness"
403  z="($wires_pwidth)/kCosUVAngle"
404  deltaphi="2*kPi"
405  aunit="rad"
406  lunit="cm"/>
407 <box name="TPCPlane"
408  x="kTPCWirePlaneThickness"
409  y="($wires_pwidth)"
410  z="($wires_plength)"
411  lunit="cm"/>
412 </solids>
413 <structure>
414 EOF
415 
416  # the wires at either end of the plane
417  for ($i = 0; $i < $NumberSideWires; ++$i)
418  {
419  print GDML <<EOF;
420  <volume name="volTPCWire$i">
421  <materialref ref="Titanium"/>
422  <solidref ref="TPCWire$i"/>
423  </volume>
424 EOF
425  }
426 
427 
428  # The wires in the middle of the plane, and the plane itself.
429  print GDML <<EOF;
430  <volume name="volTPCWireCommon">
431  <materialref ref="Titanium"/>
432  <solidref ref="TPCWireCommon"/>
433  </volume>
434  <volume name="volTPCPlane">
435  <materialref ref="LAr"/>
436  <solidref ref="TPCPlane"/>
437 EOF
438 
439  # the wires at the -z end
440  for ($i = 0; $i < $NumberSideWires; ++$i)
441  {
442  print GDML <<EOF;
443  <physvol>
444  <volumeref ref="volTPCWire$i"/>
445  <position name="posTPCWire$i" unit="cm" y="(-0.5*kTPCWirePlaneWidth)+0.5*($i+1)*kTPCWireXPitch/kTanUVAngle" z="-0.5*kTPCWirePlaneLength+0.5*kTPCWireXPitch*($i+1)" x="0"/>
446  <rotationref ref="rPlusUVAngleAboutX"/>
447  </physvol>
448 EOF
449  }
450 
451  # The wires in the middle.
452  for ($i = 0; $i < $NumberCenterWires - 1 ; ++$i)
453  {
454  my $j = $NumberSideWires+$i;
455  print GDML <<EOF;
456  <physvol>
457  <volumeref ref="volTPCWireCommon"/>
458  <position name="posTPCWire$j" unit="cm" y="0" z="(-0.5*kTPCWirePlaneLength)+kTPCWireXPitch*(0.5*$NumberSideWires + $i+1)" x="0"/>
459  <rotationref ref="rPlusUVAngleAboutX"/>
460  </physvol>
461 EOF
462  }
463 
464  # the wires at the +z end
465  for ($i = 0; $i < $NumberSideWires; ++$i)
466  {
467  my $j = $NumberSideWires-$i-1;
468  my $k = $NumberCenterWires+$NumberSideWires+$i;
469 
470  print GDML <<EOF;
471  <physvol>
472  <volumeref ref="volTPCWire$j"/>
473  <position name="posTPCWire$k" unit="cm" y="0.5*kTPCWirePlaneWidth-0.5*($j+1)*kTPCWireXPitch/kTanUVAngle" z="0.5*kTPCWirePlaneLength-0.5*kTPCWireXPitch*($j+1)" x="0"/>
474  <rotationref ref="rPlusUVAngleAboutX"/>
475  </physvol>
476 EOF
477  }
478 
479  print GDML <<EOF;
480  </volume>
481 </structure>
482 </gdml>
483 EOF
484 
485  close(GDML);
486 }
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
my($xml, $fcl, $workdir, $check, $merge)
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_tpcplanevert ( )

Definition at line 280 of file generate_gdml_simple.pl.

281 {
282 
283 
284 ##### temporary edits:
285 ##### - TPCPlaneVert y="TPCWidth" z="kTPCLength"
286 ##### - TPCWireVert y="TPCWidth"
287 ##### - (above)my $NumberWires = int($TPCLength / $TPCWirePitch ) - 1
288 
289 
290 
291  my $NumberWires = int( ( $wires_plength ) / $TPCWirePitch ) - 1;
292 
293  $GDML = "microboone/micro-vertplane" . $suffix . ".gdml";
294  push (@gdmlFiles, $GDML); # Add file to list of GDML fragments
295  $GDML = ">" . $GDML;
296  open(GDML) or die("Could not open file $GDML for writing");
297 
298  # Define the solids and structures: the wires and the TPC wire plane.
299 
300  print GDML <<EOF;
301 <?xml version='1.0'?>
302 <gdml>
303 <solids>
304 <tube name="TPCWireVert"
305  rmax="0.5*kTPCWireThickness"
306  z="$wires_pwidth"
307  deltaphi="2*kPi"
308  aunit="rad"
309  lunit="cm"/>
310 <box name="TPCPlaneVert"
311  x="kTPCWirePlaneThickness"
312  y="$wires_pwidth"
313  z="$wires_plength"
314  lunit="cm"/>
315 </solids>
316 <structure>
317  <volume name="volTPCWireVert">
318  <materialref ref="Titanium"/>
319  <solidref ref="TPCWireVert"/>
320  </volume>
321  <volume name="volTPCPlaneVert">
322  <materialref ref="LAr"/>
323  <solidref ref="TPCPlaneVert"/>
324 EOF
325 
326  # the wires
327  for ( $i = 0; $i < ( $NumberWires / $wire_int ); ++$i )
328  {
329  $j=($wire_int*$i);
330  print GDML <<EOF;
331  <physvol>
332  <volumeref ref="volTPCWireVert"/>
333  <position name="posTPCWireVert$i" unit="cm" z="(-0.5*kTPCWirePlaneLength)+kTPCWirePitch*($j+1)" x="0" y="0"/>
334  <rotationref ref="rPlus90AboutX"/>
335  </physvol>
336 EOF
337  }
338 
339  print GDML <<EOF;
340  </volume>
341 </structure>
342 </gdml>
343 EOF
344 
345  close(GDML);
346 }
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
my($xml, $fcl, $workdir, $check, $merge)
process_name opflash particleana ie ie y
for($it=0;$it< $RaceTrack_number;$it++)
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
sub gen_world ( )

Definition at line 1067 of file generate_gdml_simple.pl.

1068 {
1069  # Set up the output file.
1070  $GDML = "micro-world" . $suffix . ".gdml";
1071  push (@gdmlFiles, $GDML); # Add file to list of GDML fragments
1072  $GDML = ">" . $GDML;
1073  open(GDML) or die("Could not open file $GDML for writing");
1074 
1075  print GDML <<EOF;
1076 <?xml version='1.0'?>
1077 <gdml>
1078 <solids>
1079  <box name="World"
1080  lunit="cm"
1081  x="kWorldW"
1082  y="kWorldH"
1083  z="kWorldL"/>
1084  <tube name="Ground"
1085  rmin="620*2.54"
1086  rmax="((50*12)+620)*2.54"
1087  z="41*12*2.54"
1088  deltaphi="360"
1089  lunit="cm"
1090  aunit="deg"/>
1091  <tube name="ConcreteEnclosure"
1092  rmin="584*2.54"
1093  rmax="620*2.54"
1094  z="38*12*2.54"
1095  deltaphi="360"
1096  lunit="cm"
1097  aunit="deg"/>
1098  <tube name="ConcreteEnclosureBottom"
1099  rmin="0"
1100  rmax="620*2.54"
1101  z="36*2.54"
1102  deltaphi="360"
1103  lunit="cm"
1104  aunit="deg"/>
1105  <tube name="Overburden"
1106  rmin="0"
1107  rmax="584*2.54"
1108  z="10*12*2.54"
1109  deltaphi="360"
1110  lunit="cm"
1111  aunit="deg"/>
1112 </solids>
1113 
1114 <structure>
1115  <volume name="volGround" >
1116  <materialref ref="Dirt" />
1117  <solidref ref="Ground" />
1118  </volume>
1119  <volume name="volOverburden" >
1120  <materialref ref="Dirt" />
1121  <solidref ref="Overburden" />
1122  </volume>
1123  <volume name="volConcreteEnclosure" >
1124  <materialref ref="Concrete" />
1125  <solidref ref="ConcreteEnclosure" />
1126  </volume>
1127  <volume name="volConcreteEnclosureBottom" >
1128  <materialref ref="Concrete" />
1129  <solidref ref="ConcreteEnclosureBottom" />
1130  </volume>
1131  <volume name="volWorld" >
1132  <materialref ref="Air"/>
1133  <solidref ref="World"/>
1134  <physvol>
1135  <volumeref ref="volConcreteEnclosure"/>
1136  <position name="posConcreteEnclosure" unit="cm" x="0.5*kTPCDepth" y="36*2.54/2" z="0.5*kTPCLength"/>
1137  <rotationref ref="rPlus90AboutX"/>
1138  </physvol>
1139  <physvol>
1140  <volumeref ref="volConcreteEnclosureBottom"/>
1141  <position name="posConcreteEnclosureBottom" unit="cm" x="0.5*kTPCDepth" y="-38*12*2.54/2" z="0.5*kTPCLength"/>
1142  <rotationref ref="rPlus90AboutX"/>
1143  </physvol>
1144  <physvol>
1145  <volumeref ref="volGround"/>
1146  <position name="posGround" unit="cm" x="0.5*kTPCDepth" y="0" z="0.5*kTPCLength"/>
1147  <rotationref ref="rPlus90AboutX"/>
1148  </physvol>
1149  <physvol>
1150  <volumeref ref="volOverburden"/>
1151  <position name="posOverburden" unit="cm" x="0.5*kTPCDepth" y="(41-10)*12*2.54/2" z="0.5*kTPCLength"/>
1152  <rotationref ref="rPlus90AboutX"/>
1153  </physvol>
1154  <physvol>
1155  <volumeref ref="volDetEnclosure"/>
1156  <position name="posDetEnclosure" unit="cm" x="0.5*kTPCDepth" y="0" z="0.5*kTPCLength"/>
1157  </physvol>
1158  </volume>
1159 </structure>
1160 </gdml>
1161 EOF
1162 
1163  close(GDML);
1164 }
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)
list
Definition: file_to_url.sh:28
push(@gdmlFiles, $RACETRACK)
open(RACETRACK) or die("Could not open file $RACETRACK for writing")
GetOptions ( "input|i:s"  ,
$input,
"help|h ,
$help,
"suffix|s:s"  ,
$suffix,
"output|o:s"  ,
$output 
)
if ( defined  $help)

Definition at line 20 of file generate_gdml_simple.pl.

21 {
22  # If the user requested help, print the usage notes and exit.
23  usage();
24  exit;
25 }
usage
Definition: doGit.sh:21
if ( !defined  $suffix)

Definition at line 27 of file generate_gdml_simple.pl.

28 {
29  # The user didn't supply a suffix, so append nothing to the file
30  # names.
31  $suffix = "";
32 }
if (   $pmt_switch eq"on")

Definition at line 103 of file generate_gdml_simple.pl.

103 { gen_pmt(); } # physical volumes defined in gen_cryostat()
sub gen_pmt
gen_cryostat()
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
open ( PMT  )
push ( gdmlFiles,
  $PMT 
)
sub usage ( )

Definition at line 114 of file generate_gdml_simple.pl.

115 {
116  print "Usage: $0 [-h|--help] -i|--input <parameters-file> [-o|--output <fragments-file>] [-s|--suffix <string>]\n";
117  print " -i/--input can be omitted; <parameters-file> contains geometry and material parameters\n";
118  print " if -o is omitted, output goes to STDOUT; <fragments-file> is input to make_gdml.pl\n";
119  print " -s <string> appends the string to the file names; useful for multiple detector versions\n";
120  print " -h prints this message, then quits\n";
121 }
do one_file $F done echo for F in find $TOP name CMakeLists txt print
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

$CosUVAngle = cos( deg2rad($UVAngle) )

Definition at line 65 of file generate_gdml_simple.pl.

$electronics_height =12

Definition at line 87 of file generate_gdml_simple.pl.

$field_cage_cross_length = sqrt(($field_cage_width)**2+($field_cage_height-50)**2)

Definition at line 83 of file generate_gdml_simple.pl.

$field_cage_height = 180

Definition at line 82 of file generate_gdml_simple.pl.

$field_cage_length = 1000

Definition at line 84 of file generate_gdml_simple.pl.

$field_cage_loop_interval = 1

Definition at line 85 of file generate_gdml_simple.pl.

$field_cage_width = 200

Definition at line 81 of file generate_gdml_simple.pl.

$NumberOfTPCPlanes =3

Definition at line 72 of file generate_gdml_simple.pl.

$parser = new XML::LibXML

Definition at line 41 of file generate_gdml_simple.pl.

$PMT = ">" . $PMT

Definition at line 784 of file generate_gdml_simple.pl.

$pmt_switch ="off"

Definition at line 88 of file generate_gdml_simple.pl.

$SinUVAngle = sin( deg2rad($UVAngle) )

Definition at line 64 of file generate_gdml_simple.pl.

$spacers_on_off = "off"

Definition at line 86 of file generate_gdml_simple.pl.

$TanUVAngle = tan( deg2rad($UVAngle) )

Definition at line 66 of file generate_gdml_simple.pl.

$tpc_neg_height =200

Definition at line 75 of file generate_gdml_simple.pl.

$tpc_neg_length =1000

Definition at line 73 of file generate_gdml_simple.pl.

$tpc_neg_width =200

Definition at line 74 of file generate_gdml_simple.pl.

$wire_frame_width =9.5

Definition at line 76 of file generate_gdml_simple.pl.

$wire_int =20

Definition at line 71 of file generate_gdml_simple.pl.

$wire_plane_height =240

Definition at line 77 of file generate_gdml_simple.pl.

$wire_plane_length =1042

Definition at line 78 of file generate_gdml_simple.pl.

$wires_on =1

Definition at line 70 of file generate_gdml_simple.pl.

$wires_plength =($wire_plane_length - 2*$wire_frame_width)

Definition at line 79 of file generate_gdml_simple.pl.

$wires_pwidth =($wire_plane_height - 2*$wire_frame_width)

Definition at line 80 of file generate_gdml_simple.pl.

$xmldata = $parser->parse_file($input)

Definition at line 45 of file generate_gdml_simple.pl.

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

Definition at line 34 of file generate_gdml_simple.pl.

exit

Definition at line 110 of file generate_gdml_simple.pl.

sub gen_pmt
Initial value:
{
$PMT = "microboone/micro-pmtdef" . $suffix . ".gdml"

Definition at line 780 of file generate_gdml_simple.pl.