FEDRA emulsion software from the OPERA Collaboration
EdbOnline Class Reference

#include <EdbOnline.h>

Inheritance diagram for EdbOnline:
Collaboration diagram for EdbOnline:

Public Member Functions

 EdbOnline (const char *name="OnlineRoot", const char *title="Root object for online scanning")
 
EdbRunGetRun () const
 
int GetRunID ()
 
void Init ()
 
void Print (Option_t *opt="") const
 
int ReadParameters ()
 
int ReadParameters (const char *file)
 
int ReadParametersDB ()
 
void SetDataDirectory (const char *dir)
 
void SetOnlineDirectory (const char *dir)
 
void WriteParametersDB ()
 
virtual ~EdbOnline ()
 

Private Attributes

TString eDataDirectory
 
TString eOnlineDirectory
 
EdbRuneRun
 
Int_t eRunID
 

Constructor & Destructor Documentation

◆ EdbOnline()

EdbOnline::EdbOnline ( const char *  name = "OnlineRoot",
const char *  title = "Root object for online scanning" 
)
23 : TROOT(name, title)
24 {
25  // Init();
26 }
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24

◆ ~EdbOnline()

EdbOnline::~EdbOnline ( )
virtual
30 {
31  if( eRun ) delete eRun;
32 }
EdbRun * eRun
Definition: EdbOnline.h:25

Member Function Documentation

◆ GetRun()

EdbRun* EdbOnline::GetRun ( ) const
inline
37 { return eRun; }

◆ GetRunID()

int EdbOnline::GetRunID ( )
inline
49 { return eRunID; }
Int_t eRunID
Definition: EdbOnline.h:30

◆ Init()

void EdbOnline::Init ( void  )
36 {
37  SetDataDirectory( gSystem->ExpandPathName("$(SCAN_DATA)") );
38  SetOnlineDirectory( gSystem->ExpandPathName("$(SCAN_ONLINE)") );
39 
40  eRunID = -1;
41 
43 
44  if( eRunID<0 ) eRunID=0;
45 
47 
48  eRun = new EdbRun( GetRunID(), "RECREATE", eDataDirectory.Data() );
49 
51 
52  TString logfile(eOnlineDirectory);
53  logfile.Append("/runs.log");
54 
55  eRun->PrintLog( logfile.Data() );
56 }
int ReadParameters()
Definition: EdbOnline.cxx:97
void WriteParametersDB()
Definition: EdbOnline.cxx:67
void SetDataDirectory(const char *dir)
Definition: EdbOnline.h:41
void SetOnlineDirectory(const char *dir)
Definition: EdbOnline.h:42
int GetRunID()
Definition: EdbOnline.h:49
int ReadParametersDB()
Definition: EdbOnline.cxx:89
TString eDataDirectory
Definition: EdbOnline.h:28
TString eOnlineDirectory
Definition: EdbOnline.h:27
Definition: EdbRun.h:74
void PrintLog(const char *fname) const
Definition: EdbRun.cxx:586

◆ Print()

void EdbOnline::Print ( Option_t *  opt = "") const
60 {
61  // eRun->Print();
62  printf( "Online directory: %s\n", eOnlineDirectory.Data() );
63  printf( "Data directory: %s\n", eDataDirectory.Data() );
64 }

◆ ReadParameters() [1/2]

int EdbOnline::ReadParameters ( )
98 {
99  TString par(eOnlineDirectory);
100  par.Append("/scan.par");
101  return ReadParameters( par.Data() );
102 }

◆ ReadParameters() [2/2]

int EdbOnline::ReadParameters ( const char *  file)
106 {
107  char buf[256];
108  char key[256];
109  char name[256];
110 
111  FILE *fp=fopen(file,"r");
112  if (fp==NULL) {
113  printf("ERROR: enable to open file: %s \n", file);
114  return(-1);
115  }else
116  printf( "\nRead parameters from file: %s\n\n", file );
117 
118  while( fgets(buf,256,fp)!=NULL ) {
119 
120  for( int i=0; i<(int)strlen(buf); i++ )
121  if( buf[i]=='#' ) {
122  buf[i]='\0'; // cut out comments starting from #
123  break;
124  }
125 
126  if( sscanf(buf,"%s",key)!=1 ) continue;
127 
128  if ( !strcmp(key,"RUNNAME") )
129  {
130  sscanf(buf+strlen(key),"%s",name);
131  GetRun()->GetHeader()->SetName( name );
132  }
133  else if ( !strcmp(key,"RUNTITLE") )
134  {
135  GetRun()->GetHeader()->SetTitle( buf+strlen(key) );
136  }
137  else if ( !strcmp(key,"CCD") )
138  {
139  GetRun()->GetHeader()->GetStage()->GetCCD()->ReadParameters( buf+strlen(key) );
140  }
141  else if ( !strcmp(key,"OBJECTIVE") )
142  {
143  GetRun()->GetHeader()->GetStage()->GetObjective()->ReadParameters( buf+strlen(key) );
144  }
145  else if ( !strcmp(key,"AREA") )
146  {
147  GetRun()->GetHeader()->GetArea()->ReadParameters( buf+strlen(key) );
148  }
149  else if ( !strcmp(key,"PLATE") )
150  {
151  GetRun()->GetHeader()->GetPlate()->ReadParameters( buf+strlen(key) );
152  }
153  else if ( !strcmp(key,"PREDICTIONS") )
154  {
155  sscanf(buf+strlen(key),"%s",name);
157  }
158  else if ( !strcmp(key,"FIDUCIALS") )
159  {
160  sscanf(buf+strlen(key),"%s",name);
161  GetRun()->GetMarks()->ReadDA(name);
162  }
163 
164  else if ( !strcmp(key,"LASTRUN") )
165  {
166  sscanf( buf+strlen(key),"%d", &eRunID );
167  eRunID++;
168  }
169 
170  }
171 
172  fclose(fp);
173 
174  return 0;
175 }
int ReadParameters(const char *str)
Definition: EdbFiducial.cxx:99
int ReadParameters(const char *str)
Definition: EdbStage.cxx:93
Int_t ReadDA(char *file)
Definition: EdbFiducial.cxx:293
int ReadParameters(const char *str)
Definition: EdbStage.cxx:152
EdbRun * GetRun() const
Definition: EdbOnline.h:37
int ReadParameters(const char *str)
Definition: EdbRunHeader.cxx:187
int ReadDC(const char *file)
Definition: EdbPrediction.cxx:203
EdbPlate * GetPlate() const
Definition: EdbRunHeader.h:140
EdbArea * GetArea() const
Definition: EdbRunHeader.h:138
EdbStage * GetStage() const
Definition: EdbRunHeader.h:139
EdbPredictionsBox * GetPredictions() const
Definition: EdbRun.h:118
EdbMarksSet * GetMarks() const
Definition: EdbRun.h:119
EdbRunHeader * GetHeader() const
Definition: EdbRun.h:137
EdbObjective * GetObjective() const
Definition: EdbStage.h:105
EdbCCD * GetCCD() const
Definition: EdbStage.h:104
fclose(pFile)
#define NULL
Definition: nidaqmx.h:84
TFile * file
Definition: write_pvr.C:3

◆ ReadParametersDB()

int EdbOnline::ReadParametersDB ( )
90 {
91  TString mem(eOnlineDirectory);
92  mem.Append("/scan.mem");
93  return ReadParameters( mem.Data() );
94 }

◆ SetDataDirectory()

void EdbOnline::SetDataDirectory ( const char *  dir)
inline
41 { eDataDirectory=dir; }

◆ SetOnlineDirectory()

void EdbOnline::SetOnlineDirectory ( const char *  dir)
inline
42 { eOnlineDirectory=dir; }

◆ WriteParametersDB()

void EdbOnline::WriteParametersDB ( )
68 {
69  TString mem(eOnlineDirectory);
70  mem.Append("/scan.mem");
71 
72  FILE *fp=fopen( mem.Data() , "w" );
73  if (fp==NULL)
74  {
75  printf("ERROR: enable to open file: %s for writing\n", mem.Data() );
76  return;
77  }
78  else
79  {
80  fprintf( fp, "# DO NOT EDIT THIS FILE!\n");
81  fprintf( fp, "LASTRUN %d", GetRunID() );
82  }
83 
84  fclose(fp);
85 
86 }

Member Data Documentation

◆ eDataDirectory

TString EdbOnline::eDataDirectory
private

◆ eOnlineDirectory

TString EdbOnline::eOnlineDirectory
private

◆ eRun

EdbRun* EdbOnline::eRun
private

◆ eRunID

Int_t EdbOnline::eRunID
private

The documentation for this class was generated from the following files: