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 (char *name="OnlineRoot", 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
 directory for scanning data More...
 
TString eOnlineDirectory
 directory for online parameters More...
 
EdbRuneRun
 pointer to the run object More...
 
Int_t eRunID
 current run id More...
 

Detailed Description

//////////////////////////////////////////////////////////////////////// // EdbOnline // // head Edb class for online scanning // // ////////////////////////////////////////////////////////////////////////

Constructor & Destructor Documentation

◆ EdbOnline()

EdbOnline::EdbOnline ( char *  name = "OnlineRoot",
char *  title = "Root object for online scanning" 
)

//////////////////////////////////////////////////////////////////////// // EdbOnline // // head Edb class for online data taking // // ////////////////////////////////////////////////////////////////////////

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
pointer to the run object
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
current run id
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
directory for scanning data
Definition: EdbOnline.h:28
TString eOnlineDirectory
directory for online parameters
Definition: EdbOnline.h:27
Definition: EdbRun.h:75
void PrintLog(const char *fname) const
Definition: EdbRun.cxx:559

◆ 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:94
Int_t ReadDA(char *file)
Definition: EdbFiducial.cxx:293
int ReadParameters(const char *str)
Definition: EdbStage.cxx:153
EdbRun * GetRun() const
Definition: EdbOnline.h:37
int ReadParameters(const char *str)
Definition: EdbRunHeader.cxx:188
int ReadDC(char *file)
Definition: EdbPrediction.cxx:203
EdbPlate * GetPlate() const
Definition: EdbRunHeader.h:141
EdbArea * GetArea() const
Definition: EdbRunHeader.h:139
EdbStage * GetStage() const
Definition: EdbRunHeader.h:140
EdbPredictionsBox * GetPredictions() const
Definition: EdbRun.h:119
EdbMarksSet * GetMarks() const
Definition: EdbRun.h:120
EdbRunHeader * GetHeader() const
Definition: EdbRun.h:138
EdbObjective * GetObjective() const
Definition: EdbStage.h:105
EdbCCD * GetCCD() const
Definition: EdbStage.h:104
TFile * file
Definition: write_pvr.C:3
fclose(pFile)
#define NULL
Definition: nidaqmx.h:84

◆ 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

directory for scanning data

◆ eOnlineDirectory

TString EdbOnline::eOnlineDirectory
private

directory for online parameters

◆ eRun

EdbRun* EdbOnline::eRun
private

pointer to the run object

◆ eRunID

Int_t EdbOnline::eRunID
private

current run id


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