Write Gains To ASCII for Daq

/////////////////////////////////////////////////////////////////////////
//                                                                     //
//  Module:  TpcGains.C						       //
//  Author:  Jim Thomas						       //
//  Date:    11/17/99						       //
// 								       //
//  Purpose: 							       //
//           Simple main routine to read the tpc pad gain factors      //
//  from the database and send them to stdout with the sector IDs,     //
//  padrow number, pad ID, and gain factors.			       //
//  								       //
//  Output:  							       //
//           Sector   PadRow   Pad   GainFactor			       //
//								       //
//  Input:							       //
//           ValidDate   VersionName-(optional)			       //
//								       //
//  Discussion: 						       //
// 								       //
//           The TPC geometry is defined in STAR Note 229.  All	       //
//  reference to the TPC sectors and pads is made from the outside     //
//  looking in.  Looking at the west end (PHENIX end) from the         //
//  outside, the sectors are numbered 1-12 like a clock.  The East     //
//  end is numbered 13-24 with 24 at the top; but viewed from the      //
//  outside, standing at the East end, looking in to the  vertex.      //
//  The  padrows in each sector are numbered from the smallest radius  //
//  to the largest.  So the inner sectors rows are 1-13 with row 1     //
//  closest to the inner field cage.  The outer sector rows are	       //
//  14-45 with row 45 at the outermost radius near the outer field     //
//  cage.  The individual pads within a row are numbered with          //
//  increasing number in the clockwise direction.  This means left     //
//  to right on sector 12 - looking from the outside of the TPC.       //
//  There are 1750 pads in each innersector and 3942 pads in each      //
//  outersector.	                                               //
// 								       //
//  Example:							       //
//           TpcGains 11-09-99 00:01:00 myVersion		       //
//								       //
//  Changes:							       //
//								       //
/////////////////////////////////////////////////////////////////////////
          
#include <stdio.h>
#include <iostream.h>
#include <string.h>

#include "StDbManager.hh"
#include "StDbConfigNode.hh"
#include "StDbTable.h"
#include "StDbDefs.hh"
#include "Calibrations/tpcISGains.h"
#include "Calibrations/tpcOSGains.h"

int main(int argc, char* argv[])

{

  int   index, i, j, k ;
  char  DateTime[30], Version[30] ;
  const int Sectors = 24 ;
  const int ISRows  = 13 ; 
  const int OSRows  = 32 ;

  int ISPadsPerRow[ISRows] = {  88,  96, 104, 112, 118, 126, 134, 142,
                                              150, 158, 166, 174, 182  } ;
  int OSPadsPerRow[OSRows] = {  98, 100, 102, 104, 106, 106, 108, 110,
                               112, 112, 114, 116, 118, 120, 122, 122,
                               124, 126, 128, 128, 130, 132, 134, 136, 
                               138, 138, 140, 142, 144, 144, 144, 144  } ;
  if ( argc < 3 )
    {
      cout << endl ;
      cout << " Usage: " << endl << endl ;
      cout << "        TpcGains  Date        Time      Version(optional) " << endl ;
      cout << endl ;
      cout << "        TpcGains  1999-10-21  13:10:00  default " << endl ;
      cout << endl;
      return(0) ;
    }

  strcpy( DateTime, argv[1] ) ;
  strcat( DateTime, " " ) ;
  strcat( DateTime, argv[2] ) ;

  if ( argc > 3 ) strcpy( Version, argv[3] ) ;
  else strcpy( Version, "default" ) ;
 
  StDbManager*  mgr = StDbManager::Instance() ;
  mgr -> setRequestTime(DateTime) ;
  StDbType     type = Calibrations ;
  StDbDomain domain = Star ;
  StDbConfigNode* configNode = mgr -> initConfig(type,domain) ;

  cerr << endl ;
  
  StDbTable* IStable  =   configNode -> addDbTable("tpcISGains",Version) ;
  cerr << " TableName = " << IStable -> getTableName() << endl ;
  cerr << " BeginTime = " << IStable -> getBeginDateTime() << endl ;
  cerr << " EndTime   = " << IStable -> getEndDateTime() << endl ;
  cerr << " Requested = " <<     mgr -> getDateCheckTime() << endl ;
  cerr << " Version   = " << IStable -> getVersion() << endl;
  cerr << " DB Type   = " <<     mgr -> getDbTypeName( IStable->getDbType() ) << endl ;
  cerr << " DB Domain = " <<     mgr -> getDbDomainName( IStable->getDbDomain() ) ;
 
  cerr << endl << endl ;

  StDbTable* OStable  =   configNode -> addDbTable("tpcOSGains",Version) ;
  cerr << " TableName = " << OStable -> getTableName() << endl ;
  cerr << " BeginTime = " << OStable -> getBeginDateTime() << endl ;
  cerr << " EndTime   = " << OStable -> getEndDateTime() << endl ;
  cerr << " Requested = " <<     mgr -> getDateCheckTime() << endl ;
  cerr << " Version   = " << OStable -> getVersion() << endl;
  cerr << " DB Type   = " <<     mgr -> getDbTypeName( OStable->getDbType() ) << endl ;
  cerr << " DB Domain = " <<     mgr -> getDbDomainName( OStable->getDbDomain() ) ;

  cerr << endl << endl ;

  // We need some sort of success or failure flag ** here ** 

  tpcISGains* ISgains ;
  tpcOSGains* OSgains ;
  
  mgr -> fetchDbTable(IStable) ;
  mgr -> fetchDbTable(OStable) ;
  ISgains = (tpcISGains*)IStable -> GetTable() ;
  OSgains = (tpcOSGains*)OStable -> GetTable() ;

  for ( i = 0 ; i < Sectors ; i++ )
    {
      index = 0 ;
      for ( j = 0 ; j < ISRows ; j++ )
	{
	  for ( k = 0 ; k < ISPadsPerRow[j] ; k++ )
	    {
	      printf( " %2d %2d %3d %7.4f n", 
		      i+1, j+1, k+1, ISgains[i].gain[index] ) ;
	      index++;
	    }
	}
      
      index = 0 ;
      for ( j = 0 ; j < OSRows ; j++ )
	{
	  for ( k = 0 ; k < OSPadsPerRow[j] ; k++ )
	    {
	      printf( " %2d %2d %3d %7.4f n", 
		      i+1, j+ISRows+1, k+1, OSgains[i].gain[index] ) ;
	      index++;
	    }
	}
    }
}





ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.