#!/bin/csh -f

########################
# txt files dependencies
########################
set lh2target  = 'targets/LH2_target.txt'           # LH2 Target
set ld2target  = 'targets/LD2_target.txt'           # LD2 Target
set bst        = 'svt/bst.txt'                      # Barrel SVT
set fst        = 'svt/fst.txt'                      # Forward SVT
set ctof       = 'ctof/ctof.txt'                    # Central TOF Paddles
set ctoflg     = 'ctof/lg.txt'                      # Central TOF Light Guides
set solenoid   = 'magnets/solenoid.txt'             # Solenoid
set torus      = 'magnets/torus.txt'                # Torus
set innerd     = 'inner_d_envelope.txt'             # Inner Detector Envelope
set nullinnerd = 'null_inner_d_envelope.txt'        # Inner Detector Envelope - no magnetic field
set dcr1       = 'drift_chambers/dc1.txt'           # Region 1 Drift Chambers
set dcr2       = 'drift_chambers/dc2.txt'           # Region 2 Drift Chambers
set dcr3       = 'drift_chambers/dc3.txt'           # Region 3 Drift Chambers
set dc12r1     = 'drift_chambers/dc12_1.txt'        # Region 1 Drift Chambers
set dc12r2     = 'drift_chambers/dc12_2.txt'        # Region 2 Drift Chambers
set dc12r3     = 'drift_chambers/dc12_3.txt'        # Region 3 Drift Chambers
set sector     = 'sector_copy.txt'                  # Sector
set otof       = 'otof/otof.txt'                    # Outer TOF
set m_shield   = 'beamline/moeller_shield.txt'      # Moeller Shield
set d_beamline = 'beamline/downstream_beamline.txt' # Downstream Beamline


# Available geometries
if($1 != "allgeometry" && $1 != "ih2tgeometry" && $1 != "id2tgeometry" && $1 != "innergeometry" && $1 != "clas12geometry" && $1 != "ih2tnullgeometry") then
 echo
 echo Geometry $1 is not available. Available geometries:
 echo
 echo allgeometry:"        "all detectors
 echo ih2tgeometry:"       "inner detectors, LH2 target
 echo ih2tnullgeometry:"   "inner detectors, LH2 target, no magnetic field
 echo id2tgeometry:"       "inner detectors, LD2 target
 echo innergeometry:"      "LH2target, BST, FST, Moeller Absorber, Downstream Beamline, Solenoid
 echo
 echo
 exit;
endif


set allgeometry      = ( $lh2target $bst $fst $ctof $solenoid $innerd $dcr1 $dcr2 $dcr3 $sector )
set ih2tgeometry     = ( $lh2target $bst $fst $innerd      $m_shield)
set ih2tnullgeometry = ( $lh2target $bst $fst $nullinnerd  $m_shield)
set id2tgeometry     = ( $ld2target $bst $fst $innerd      $m_shield)
set innergeometry    = ( $lh2target $bst $fst $ctof $m_shield  $solenoid $d_beamline)
set clas12geometry   = ( $lh2target $bst $fst $ctof $solenoid $innerd $ctoflg $m_shield $dc12r1 $dc12r2 $dc12r3 $sector $otof) 


# Recreate requested table
if($1 == "allgeometry" )   then 
 set DEPS = ($allgeometry)
endif
if($1 == "ih2tgeometry")   then 
 set DEPS = ($ih2tgeometry)
endif
if($1 == "ih2tnullgeometry")   then 
 set DEPS = ($ih2tnullgeometry)
endif
if($1 == "id2tgeometry")   then 
 set DEPS = ($id2tgeometry)
endif
if($1 == "innergeometry")  then 
 set DEPS = ($innergeometry) 
endif
if($1 == "clas12geometry")  then 
 set DEPS = ($clas12geometry) 
endif

set table = $1

echo "y" | $GEMC/database_io/drop_geo_table  $table
$GEMC/database_io/create_new_geo_table $table >& /dev/null

rm -rf geo_table_commands; touch geo_table_commands
echo use clas12_geometry\;  >> geo_table_commands
foreach d ($DEPS)
 echo LOAD DATA LOCAL INFILE \'$d\' into TABLE $table\; >> geo_table_commands
end

# Recreate all tables
#foreach d ( drift_chambers otof )
echo
foreach d (targets svt beamline magnets ctof)    # no need to clean target
  echo ">>>" $d "<<<" 
  cd $d
  ./go_table >& /dev/null
  cd ..
end


mysql -h $GEMC_HOST -u $GEMC_USER < geo_table_commands

# cleaning
echo
foreach d (svt beamline magnets ctof)    # no need to clean target
  echo cleaning $d temp files...
  cd $d
  ./go_table clean
 cd ..
end
rm geo_table_commands
echo
echo done!
echo






