// $Header: GetParameters.cxx $

#include "GetParameters.h"
#include <stdlib.h>


//______________________________________________________________________
// GetParameters
//
// This class is a temporary expedient (until a more flexible method
// is available) for getting parameters to a reconstruction program,
// such as Fast MC or FullRecon.

ClassImp(GetParameters)
  
 GetParameters::GetParameters(FILE* parFile) {
  // Constructor.  Read and digest parameter file and progeny.

  // find the tracking section in the parameters file and extract them.

  TString input_line, input_string;
  
  char temp[100], 
    name[100],
    equals[100];
  
  float value;
  
  int pos;
  
  // rewind the file
  fseek(parFile, 0L, 0);
  
  while ( (pos = fscanf(parFile,"%s",&temp)) > 0 ) {
    
    input_line = temp;
    
    if(input_line.Contains("Detector:")) {
      
      // form of parameters is: name = value
      
      int inpos; 
      while( (inpos = fscanf(parFile,"%s",&name) ) > 0) {
	
	input_string = name; 
	
	if ( input_string.Contains("end")) {
	  break;
	}
	
	inpos = fscanf(parFile,"%s %s",&equals,&temp);
	
	if ( input_string.Contains("DetectorName" )) {
	  m_DetectorName = temp;
	}
      }
    }
    
    if(input_line.Contains("Tracking:")) {
      
      // form of parameters is: name = value
      
      int inpos; 
      while( (inpos =fscanf(parFile,"%s",&name) ) > 0){
	
	input_string = name; 
	
	if ( input_string.Contains("end")) {
	  break;
	}
	
	inpos = fscanf(parFile,"%s %s",&equals,&temp);
	
	if ( input_string.Contains("BarrelTableFile" )) {
	  m_BarrelTableFile = temp;
	}
	
	else if ( input_string.Contains("EndcapTableFile" )) {
	  m_EndcapTableFile = temp;
	}
	
	else {
	  value = strtod(temp,(char**)NULL);
	  
	  if ( input_string.Contains("minHit" )) {
	    m_minHit = value;
	  }
	  else if ( input_string.Contains("PtMin" )) {
	    m_PtMin = value;
	  }
	  else if ( input_string.Contains("PolarInner" )) {
	    m_PolarInner = value;
	  }
	  else if ( input_string.Contains("PolarOuter" )) {
	    m_PolarOuter = value;
	  }
	}
      }
    }
  }
  
  printf("Tracking Parameters Used: n n");
  printf("PtMin= %f minHit= %i n",m_PtMin,m_minHit);
  printf("PolarInner= %f  n",m_PolarInner);
  printf("PolarOuter= %f n", m_PolarOuter);
  printf("BarrelTableFile= %s n", m_BarrelTableFile.Data());
  printf("EndcapTableFile= %s n", m_EndcapTableFile.Data());
  printf("DetectorName= %s n", m_DetectorName.Data());
  
  // rewind the file again
  fseek(parFile, 0L, 0);
  
};



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.