;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^Lance Simms, Stanford University 2009
;pro create_cr_db_xrg
;
;PURPOSE:
;  To create tables in the Cosmic Ray MySQL databases for the HxRG detectors.
;  
;  The script uses Mark Buie's MySQL library to do this.
;
;  There are currently 3 tables: one for single pixel CR events, one for
;  multiple pixel CR events that are flagged during slopefits, and one 
;  for the decay of traps after a CR hit.  The tables differ in their contents.
;
;INPUTS:
;  DETSTR: string
;     The name of the detector used ('H1RG-022', 'H2RG-32-147', 'H4RG-007')
;  ELECSTR: string
;     The name of the electronics used ('ASIC', 'LEACH')
;  MODE:
;     0 - Create a single hit cosmic ray table for DETSTR+ELECSTR
;
;     1 - Create a multiple hit cosmic ray table for DETSTR+ELECSTR
;
;     2 - Create a cosmic ray table for the decay of signal due to 
;         traps after a cosmic ray hit.  The two tables are
;         
;         Global - Classifying morphology of Event
;         Single - Classifying pixel behavior
;KEYWORDS:
;  OVERWRITE: int
;     0 - Don't overwrite the old tables;
;     1 - Overwrite the old tables
; 
;EFFECTS:
;  The MySQL database will be updated with the new table.
;
;CALLING SEQUENCE:
;  Create_CR_DB_xRG, DetStr, ElecStr, Mode
;
;EXAMPLES
;To create the single table
;   Create_CR_DB_xRG, 'H2RG-32-147', 'ASIC', 0
;To create the decay table
;   Create_cr_db_xrg,'H1RG-022','LEACH',2
;   Create_cr_db_xrg,'H2RG-001','ASIC',2
pro Create_CR_DB_xRG, DetStr, ElecStr, Mode, OverWrite=OverWrite

If N_Elements(OverWrite) eq 0 then OverWrite = 1
Date = ''
Common KeyParams, KeyStr
;Include all of the keywords from the KeywordStruct file

@KeywordStruct_xRG.pro
@PlotSettings_xRG.pro

Case Mode of
  0: begin
     ;Single Hit Cosmic Ray Database
     openmysql, MySQLLun, 'SingleCRHits', MyQLErr
    
     ;Format the strings in the table name
     TableName = KeyStr.DetStr+'_'+KeyStr.ElecStr+'_'+'SinCRHits'
     strreplace, TableName, '-','_'
     strreplace, TableName, '-','_'
     mysqlcmd, MySQLLun, 'CREATE TABLE '+TableName+'('+$
	'READNUM SMALLINT,X SMALLINT, Y SMALLINT,FILENAME VARCHAR(120),'+ $
	'ADU00 SMALLINT, ADU01 SMALLINT,ADU02 SMALLINT,'+$
	'ADU10 SMALLINT, ADU11 SMALLINT,ADU12 SMALLINT,'+$
	'ADU20 SMALLINT, ADU21 SMALLINT,ADU22 SMALLINT);', $
	Answer, NumLines
  end
  1: begin
  end 
  2: begin
 
     ;Single Hit Cosmic Ray Database
     openmysql, MySQLLun, 'CRHit_Decays', MyQLErr

     ;Format the strings in the table name
     GlobalTableName = KeyStr.DetStr+'_'+KeyStr.ElecStr+'_'+'Glo_CRHits'
     SingleTableName = KeyStr.DetStr+'_'+KeyStr.ElecStr+'_'+'Sin_CRHits'
     strreplace, GlobalTableName, '-','_'
     strreplace, GlobalTableName, '-','_'
     strreplace, SingleTableName, '-','_'
     strreplace, SingleTableName, '-','_'

     if OverWrite eq 1 then $
        mysqlcmd, MySQLLun, 'DROP TABLE ' +GlobalTableName+';'
        mysqlcmd, MySQLLun, 'CREATE TABLE '+GlobalTableName+'('+$
        'COSID VARCHAR(100) NOT NULL PRIMARY KEY,'                        +$ 
        'X SMALLINT          , Y SMALLINT          , COSREAD  SMALLINT,'  +$
        'NUMPIX  SMALLINT    ,'                                           +$
        'MAXCOSEDEP MEDIUMINT, MAXQLOST MEDIUMINT  , MAXQRISE MEDIUMINT,' +$
        'TOTCOSEDEP MEDIUMINT, TOTQLOST MEDIUMINT  , TOTQRISE MEDIUMINT,' +$
        'EXTENT SMALLINT     , YEXTENT SMALLINT    ,'                     +$
        'TRKLN2D FLOAT       , PERPCNTS MEDIUMINT  ,'                     +$
        'ELLIP   FLOAT       , LMBDA1 FLOAT        , LMBDA2 FLOAT,'       +$
        'CLASS   VARCHAR(8)  , FILTER VARCHAR(8)   , TEMP FLOAT,'         +$
        'DATE    VARCHAR(8));',$
        Answer, NumLines

     if OverWrite eq 1 then $
        mysqlcmd, MySQLLun, 'DROP TABLE ' +SingleTableName+';'
        mysqlcmd, MySQLLun, 'CREATE TABLE '+SingleTableName+'('+$
        'COSID VARCHAR(100)  , X SMALLINT          , Y SMALLINT,'     +$
        'COSREAD   SMALLINT  , COSENEDEP  SMALLINT , '                +$
        'QLOST MEDIUMINT     , QRISE MEDIUMINT     ,'                 +$
        'MINREADAC SMALLINT  , MAXREADAC  SMALLINT ,'                 +$
        'FIT_A     FLOAT     , FIT_TAU FLOAT       ,'                 +$
        'FIT_ER_T  FLOAT     , FIT_ER_STD FLOAT    ,'                 +$
        'TEMP FLOAT          , VSUB    INT         ,'                 +$
        'MAXDARK FLOAT       , DEPTH   FLOAT       ,'                 +$
        'BPIX TINYINT        , DATE VARCHAR(8));', $
        Answer, NumLines
  end
endcase

end  
