CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TEcnaParPaths.cc
Go to the documentation of this file.
1 //---------Author's Name: B.Fabbro DSM/IRFU/SPP CEA-Saclay
2 //----------Copyright: Those valid for CEA sofware
3 //----------Modified: 13/10/2010
5 
6 ClassImp(TEcnaParPaths)
7 //______________________________________________________________________________
8 //
9 // TEcnaParPaths.
10 //
11 // Values of different parameters for plots in the framework of TEcnaHistos
12 // (see description of this class)
13 //
14 // Examples of parameters: ymin and ymax values for histos, title sizes,
15 // margins for plots, etc...
16 //
17 //
18 //-------------------------------------------------------------------------
19 //
20 // For more details on other classes of the CNA package:
21 //
22 // http://www.cern.ch/cms-fabbro/cna
23 //
24 //-------------------------------------------------------------------------
25 //
26 //---------------------- TEcnaParPaths.cc -------------------------------
27 //
28 // Creation (first version): 19 May 2005
29 //
30 // For questions or comments, please send e-mail to Bernard Fabbro:
31 //
32 // fabbro@hep.saclay.cea.fr
33 //
34 //------------------------------------------------------------------------
35 
37 {
38 //destructor
39 
40  // cout << "[Info Management] CLASS: TEcnaParPaths. DESTROY OBJECT: this = " << this << endl;
41 }
42 
43 //===================================================================
44 //
45 // Constructors
46 //
47 //===================================================================
49 {
50 // Constructor without argument
51 
52  // cout << "[Info Management] CLASS: TEcnaParPaths. CREATE OBJECT: this = " << this << endl;
53 
54  Init();
55 
56  //............................... Get user's parameters from user's directory
57  GetPathForResultsRootFiles(); // Init the values of fCfgResultsRootFilePath
58  GetPathForResultsAsciiFiles(); // Init the values of fCfgResultsAsciiFilePath
59  GetPathForHistoryRunListFiles(); // Init the values of fCfgHistoryRunListFilePath
60  // GetPathForAnalyzerParametersFiles(); // Init the values of fCfgAnalyzerParametersFilePath
61  GetCMSSWParameters(); // Init the values of fCfgCMSSWVersion, fCfgCMSSWSubsystem and fCfgCMSSWSlc
62 }
63 
65 {
66  fgMaxCar = (Int_t)512; // max number of characters in TStrings
67 
68  fTTBELL = '\007';
69 
70  //................ Init CNA Command and error numbering
71  fCnaCommand = 0;
72  fCnaError = 0;
73 
74  //................ Init path flags
75 
76  fPathForResultsRootFiles = kFALSE;
79 
80 }// end of Init()
81 
82 
83 //=======================================================================================
84 //
85 // P R I V A T E M E T H O D S T O G E T T H E P A R A M E T E R S
86 //
87 // F R O M T H E U S E R ' S D I R E C T O R Y
88 //
89 //=======================================================================================
91 {
93 }
94 
95 void TEcnaParPaths::GetPathForResultsRootFiles(const TString argFileName)
96 {
97  // Init fCfgResultsRootFilePath and get it from the file named argFileName
98  // argFileName = complete name of the file (/afs/cern.ch/...)
99  // if string is empty, file name = "ECNA/path_results_root" (located in $HOME user's directory - default - )
100 
101  Int_t MaxCar = fgMaxCar;
102  fCfgResultsRootFilePath.Resize(MaxCar);
104 
105  //..... put the name of the ascii file (containing the paths for CNA treatements)
106  // in the string cFileNameForCnaPaths and in class attribute fFileForResultsRootFilePath
107 
108  if ( argFileName == "" )
109  {
110  string cFileNameForCnaPaths = "ECNA/path_results_root"; // config file name
111  TString s_file_name = cFileNameForCnaPaths.c_str();
112  const Text_t *t_file_name = (const Text_t *)s_file_name.Data();
113 
114  TString s_path_name = gSystem->Getenv("HOME"); // get user's home directory path
115 
116  fFileForResultsRootFilePath = s_path_name;
117  fFileForResultsRootFilePath.Append('/');
118  fFileForResultsRootFilePath.Append(t_file_name);
119  }
120  else
121  {
122  fFileForResultsRootFilePath = argFileName.Data();
123  }
124 
125  //........ Reading of the paths in the file named fFileForResultsRootFilePath.Data()
126  //
127 
129  if(fFcin_rr.fail() == kFALSE)
130  {
131  fFcin_rr.clear();
132  string xResultsFileP;
133  fFcin_rr >> xResultsFileP;
134  fCfgResultsRootFilePath = xResultsFileP.c_str();
135  fFcin_rr.close();
136  fPathForResultsRootFiles = kTRUE;
137  }
138  else
139  {
140  fFcin_rr.clear();
141  fCnaError++;
142  cout << fTTBELL << endl
143  << " ***************************************************************************************** " << endl;
144  cout << " !CNA(TEcnaParPaths) (" << fCnaError << ") *** ERROR *** " << endl << endl
145  << " " << fFileForResultsRootFilePath.Data() << ": file not found. " << endl << endl
146  << " Please create a subdirectory named ECNA in your HOME directory (if not already done)" << endl
147  << " and create a file named path_results_root in the subdirectory ECNA." << endl << endl
148  << " The file " << fFileForResultsRootFilePath.Data() << " is a configuration file" << endl
149  << " for the CNA and must contain one line with the following syntax:" << endl << endl
150  << " PATH_OF_THE_RESULTS_ROOT_FILE ($HOME/etc...) (without slash at the end of line)" << endl
151  << " ================================"
152  << endl << endl
153  << " Example: $HOME/scratch0/cna/results_root" << endl << endl
154  << " ***************************************************************************************** "
155  << fTTBELL << endl;
156 
157  fFcin_rr.close();
158  fPathForResultsRootFiles = kFALSE;
159  }
160 } // ----------- (end of GetPathForResultsRootFiles) --------------------
161 
162 //================================================================================================
163 
165 {
167 }
168 
169 void TEcnaParPaths::GetPathForResultsAsciiFiles(const TString argFileName)
170 {
171  // Init fCfgResultsAsciiFilePath and get it from the file named argFileName
172  // argFileName = complete name of the file (/afs/cern.ch/...)
173  // if string is empty, file name = "ECNA/path_results_ascii" (located in $HOME user's directory - default - )
174 
175  Int_t MaxCar = fgMaxCar;
176  fCfgResultsAsciiFilePath.Resize(MaxCar);
178 
179  //..... put the name of the ascii file (containing the paths for CNA treatements)
180  // in the string cFileNameForCnaPaths and in class attribute fFileForResultsAsciiFilePath
181 
182  if ( argFileName == "" )
183  {
184  string cFileNameForCnaPaths = "ECNA/path_results_ascii"; // config file name
185  TString s_file_name = cFileNameForCnaPaths.c_str();
186  const Text_t *t_file_name = (const Text_t *)s_file_name.Data();
187 
188  TString s_path_name = gSystem->Getenv("HOME"); // get user's home directory path
189 
190  fFileForResultsAsciiFilePath = s_path_name;
191  fFileForResultsAsciiFilePath.Append('/');
192  fFileForResultsAsciiFilePath.Append(t_file_name);
193  }
194  else
195  {
196  fFileForResultsAsciiFilePath = argFileName.Data();
197  }
198 
199  //........ Reading of the paths in the file named fFileForResultsAsciiFilePath.Data()
200  //
201 
203  if(fFcin_ra.fail() == kFALSE)
204  {
205  fFcin_ra.clear();
206  string xResultsFileP;
207  fFcin_ra >> xResultsFileP;
208  fCfgResultsAsciiFilePath = xResultsFileP.c_str();
209  fFcin_ra.close();
211  }
212  else
213  {
214  fFcin_ra.clear();
215  fCnaError++;
216  cout << fTTBELL << endl
217  << " ***************************************************************************************** " << endl;
218  cout << " !CNA(TEcnaParPaths) (" << fCnaError << ") *** ERROR *** " << endl << endl
219  << " " << fFileForResultsAsciiFilePath.Data() << ": file not found. " << endl << endl
220  << " Please create a subdirectory named ECNA in your HOME directory (if not already done)" << endl
221  << " and create a file named path_results_ascii in the subdirectory ECNA." << endl << endl
222  << " The file " << fFileForResultsAsciiFilePath.Data() << " is a configuration file" << endl
223  << " for the CNA and must contain one line with the following syntax:" << endl << endl
224  << " PATH_OF_THE_RESULTS_ASCII_FILE ($HOME/etc...) (without slash at the end of line)" << endl
225  << " ================================"
226  << endl << endl
227  << " Example: $HOME/scratch0/cna/results_ascii" << endl << endl
228  << " ***************************************************************************************** "
229  << fTTBELL << endl;
230 
231  fFcin_ra.close();
232  fPathForResultsAsciiFiles = kFALSE;
233  }
234 } // ----------- (end of GetPathForResultsAsciiFiles) --------------------
235 
236 //================================================================================================
237 
239 {
241 }
242 
243 void TEcnaParPaths::GetPathForHistoryRunListFiles(const TString argFileName)
244 {
245  // Init fCfgHistoryRunListFilePath and get it from the file named argFileName
246  // argFileName = complete name of the file (/afs/cern.ch/...)
247  // if string is empty, file name = "ECNA/path_runlist_history_plots" (located in $HOME user's directory - default - )
248 
249  Int_t MaxCar = fgMaxCar;
250  fCfgHistoryRunListFilePath.Resize(MaxCar);
252 
253  //..... put the name of the ascii file (containing the paths for CNA treatements)
254  // in the string cFileNameForCnaPaths and in class attribute fFileForHistoryRunListFilePath
255 
256  if ( argFileName == "" )
257  {
258  string cFileNameForCnaPaths = "ECNA/path_runlist_history_plots"; // config file name
259  TString s_file_name = cFileNameForCnaPaths.c_str();
260  const Text_t *t_file_name = (const Text_t *)s_file_name.Data();
261 
262  TString s_path_name = gSystem->Getenv("HOME"); // get user's home directory path
263 
264  fFileForHistoryRunListFilePath = s_path_name;
265  fFileForHistoryRunListFilePath.Append('/');
266  fFileForHistoryRunListFilePath.Append(t_file_name);
267  }
268  else
269  {
270  fFileForHistoryRunListFilePath = argFileName.Data();
271  }
272 
273  //........ Reading of the paths in the file named fFileForHistoryRunListFilePath.Data()
274  //
275 
277  if(fFcin_lor.fail() == kFALSE)
278  {
279  fFcin_lor.clear();
280  string xHistoryRunListP;
281  fFcin_lor >> xHistoryRunListP;
282  fCfgHistoryRunListFilePath = xHistoryRunListP.c_str();
283  fFcin_lor.close();
285  }
286  else
287  {
288  fFcin_lor.clear();
289  fCnaError++;
290  cout << fTTBELL << endl
291  << " ******************************************************************************************************** " << endl;
292  cout << " !CNA(TEcnaParPaths) (" << fCnaError << ") *** ERROR *** " << endl << endl
293  << " " << fFileForHistoryRunListFilePath.Data() << ": file not found. " << endl << endl
294  << " Please create a subdirectory named ECNA in your HOME directory (if not already done)" << endl
295  << " and create a file named path_runlist_history_plots in the subdirectory ECNA." << endl << endl
296  << " The file " << fFileForHistoryRunListFilePath.Data() << " is a configuration file" << endl
297  << " for the CNA and must contain one line with the following syntax:" << endl << endl
298  << " PATH_OF_THE_LIST_OF_RUNS_FOR_HISTORY_PLOTS_FILE ($HOME/etc...) (without slash at the end of line)" << endl
299  << " ================================"
300  << endl << endl
301  << " Example: $HOME/scratch0/cna/runlist_history_plots" << endl << endl
302  << " ******************************************************************************************************** "
303  << fTTBELL << endl;
304 
305  fFcin_lor.close();
307  }
308 } // ----------- (end of GetPathForHistoryRunListFiles) --------------------
309 
310 //================================================================================================
311 
312 #define ANAP
313 #ifndef ANAP
314 
315 void TEcnaParPaths::GetPathForAnalyzerParametersFiles()
316 {
317  GetPathForAnalyzerParametersFiles("");
318 }
319 
320 void TEcnaParPaths::GetPathForAnalyzerParametersFiles(const TString argFileName)
321 {
322  // Init fCfgAnalyzerParametersFilePath and get it from the file named argFileName
323  // argFileName = complete name of the file (/afs/cern.ch/...)
324  // if string is empty, file name = "path_analyzer_parameters.ecna" and file located
325  // in $HOME user's directory (default)
326 
327  Int_t MaxCar = fgMaxCar;
328  fCfgAnalyzerParametersFilePath.Resize(MaxCar);
329  fCfgAnalyzerParametersFilePath = "?";
330 
331  //..... put the name of the ascii file (containing the paths for CNA treatements)
332  // in the string cFileNameForCnaPaths and in class attribute fFileForAnalyzerParametersFilePath
333 
334  if ( argFileName == "" )
335  {
336  string cFileNameForCnaPaths = "path_analyzer_parameters.ecna"; // config file name
337  TString s_file_name = cFileNameForCnaPaths.c_str();
338  const Text_t *t_file_name = (const Text_t *)s_file_name.Data();
339 
340  TString s_path_name = gSystem->Getenv("HOME"); // get user's home directory path
341 
342  fFileForAnalyzerParametersFilePath = s_path_name;
343  fFileForAnalyzerParametersFilePath.Append('/');
344  fFileForAnalyzerParametersFilePath.Append(t_file_name);
345  }
346  else
347  {
348  fFileForAnalyzerParametersFilePath = argFileName.Data();
349  }
350 
351  //........ Reading of the paths in the file named fFileForAnalyzerParametersFilePath.Data()
352  //
353 
354  fFcin_anapar.open(fFileForAnalyzerParametersFilePath.Data());
355  if(fFcin_anapar.fail() == kFALSE)
356  {
357  fFcin_anapar.clear();
358  string xAnalyzerParametersP;
359  fFcin_anapar >> xAnalyzerParametersP;
360  fCfgAnalyzerParametersFilePath = xAnalyzerParametersP.c_str();
361  fFcin_anapar.close();
362  }
363  else
364  {
365  fFcin_anapar.clear();
366  fCnaError++;
367  cout << fTTBELL << endl
368  << " ***************************************************************************** " << endl;
369  cout << " !CNA(TEcnaParPaths) (" << fCnaError << ") *** ERROR *** " << endl << endl
370  << " "
371  << fFileForAnalyzerParametersFilePath.Data() << " : file not found. " << endl
372  << " "
373  << " Please create this file in your HOME directory and then restart."
374  << endl << endl
375  << " "
376  << " The file " << fFileForAnalyzerParametersFilePath.Data()
377  << " is a configuration file for the CNA and"
378  << " must contain one line with the following syntax:" << endl << endl
379  << " "
380  << " path of the analyzer parameters files ($HOME/etc...) " << endl
381  << " "
382  << " (without slash at the end of line)" << endl
383  << endl << endl
384  << " "
385  << " EXAMPLE:" << endl << endl
386  << " "
387  << " $HOME/scratch0/cna/analyzer_parameters" << endl << endl
388  << " ***************************************************************************** "
389  << fTTBELL << endl;
390 
391  fFcin_anapar.close();
392  }
393 } // ----------- (end of GetPathForAnalyzerParametersFiles) --------------------
394 #endif // ANAP
395 
396 //================================================================================================
398 {
399  GetCMSSWParameters("");
400 }
401 
402 void TEcnaParPaths::GetCMSSWParameters(const TString argFileName)
403 {
404  // Init fCfgCMSSWVersion, fCfgCMSSWSubsystem and fCfgCMSSWSlc
405  // and get them from the file named argFileName
406  // argFileName = complete name of the file (/afs/cern.ch/...)
407  // if string is empty, file name = "ECNA/cmssw_parameters" (located in $HOME user's directory - default - )
408 
409  Int_t MaxCar = fgMaxCar;
410  fCfgCMSSWVersion.Resize(MaxCar);
411  fCfgCMSSWVersion = "?";
412  fCfgCMSSWSubsystem.Resize(MaxCar);
413  fCfgCMSSWSubsystem = "?";
414  fCfgCMSSWSlc.Resize(MaxCar);
415  fCfgCMSSWSlc = "?";
416 
417  //..... put the name of the ascii file (containing the paths for CNA treatements)
418  // in the string cFileNameForCMSSWParameters and in class attribute fFileForCMSSWParameters
419 
420  if ( argFileName == "" )
421  {
422  string cFileNameForCMSSWParameters = "ECNA/cmssw_parameters"; // config file name
423  TString s_file_name = cFileNameForCMSSWParameters.c_str();
424  const Text_t *t_file_name = (const Text_t *)s_file_name.Data();
425 
426  TString s_path_name = gSystem->Getenv("HOME"); // get user's home directory path
427 
428  fFileForCMSSWParameters = s_path_name;
429  fFileForCMSSWParameters.Append('/');
430  fFileForCMSSWParameters.Append(t_file_name);
431  }
432  else
433  {
434  fFileForCMSSWParameters = argFileName.Data();
435  }
436 
437  //... Reading of the CMSSW version, subsystem and slc name in the file named fFileForCMSSWParameters.Data()
438  //
439 
441  if(fFcin_cmssw.fail() == kFALSE)
442  {
443  fFcin_cmssw.clear();
444 
445  string xCMSSWVersionFileP;
446  fFcin_cmssw >> xCMSSWVersionFileP;
447  fCfgCMSSWVersion = xCMSSWVersionFileP.c_str();
448 
449  string xCMSSWSubsystemFileP;
450  fFcin_cmssw >> xCMSSWSubsystemFileP;
451  fCfgCMSSWSubsystem = xCMSSWSubsystemFileP.c_str();
452 
453  string xCMSSWSlcFileP;
454  fFcin_cmssw >> xCMSSWSlcFileP;
455  fCfgCMSSWSlc = xCMSSWSlcFileP.c_str();
456 
457  fFcin_cmssw.close();
458  }
459  else
460  {
461  fFcin_cmssw.clear();
462  fCnaError++;
463  cout << fTTBELL << endl
464  << " ************************************************************************************************** " << endl;
465  cout << " !CNA(TEcnaParPaths) (" << fCnaError << ") *** ERROR *** " << endl << endl
466  << " " << fFileForCMSSWParameters.Data() << ": file not found. " << endl << endl
467  << " Please create a subdirectory named ECNA in your HOME directory (if not already done)" << endl
468  << " and create a file named cmssw_parameters in the subdirectory ECNA." << endl << endl
469  << " The file " << fFileForCMSSWParameters.Data() << " is a configuration file" << endl
470  << " for the CNA and must contain one line with the following syntax:" << endl << endl
471  << " CMSSW_VERSION SUBSYSTEM_NAME TEST_SUBDIRECTORY_NAME" << endl
472  << endl << endl
473  << " Example: CMSSW_2_1_19 CalibCalorimetry slc4_ia32_gcc345" << endl << endl
474  << " ************************************************************************************************** "
475  << fTTBELL << endl;
476 
477  fFcin_cmssw.close();
478  }
479 } // ----------- (end of GetCMSSWParameters) --------------------
480 
481 //=======================================================================================
482 //
483 // P U B L I C M E T H O D S T O R E T U R N T H E P A R A M E T E R S
484 //
485 //=======================================================================================
492 
493 //.....................................................................................
495 {
496  // ----- return the path of data subdirectory in package "Modules"
497  TString ModulesdataPath = "";
498  //...... get HOME directory path, CMSSW version and Subsystem name
499  TString s_path_name = gSystem->Getenv("HOME");
500  const Text_t *t_path_name = (const Text_t *)s_path_name.Data();
501  ModulesdataPath.Append(t_path_name);
502  ModulesdataPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/
503 
504  TString s_cmssw = "cmssw";
505  const Text_t *t_cmssw = (const Text_t *)s_cmssw.Data();
506  ModulesdataPath.Append(t_cmssw);
507  ModulesdataPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/
508 
509  const Text_t *t_cmssw_version = (const Text_t *)CMSSWVersion().Data();
510  ModulesdataPath.Append(t_cmssw_version);
511  ModulesdataPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/
512 
513  TString s_src = "src";
514  const Text_t *t_src = (const Text_t *)s_src.Data();
515  ModulesdataPath.Append(t_src);
516  ModulesdataPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/src
517 
518  const Text_t *t_cmssw_subsystem = (const Text_t *)CMSSWSubsystem().Data();
519  ModulesdataPath.Append(t_cmssw_subsystem);
520  ModulesdataPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/src/CalibCalorimetry/
521 
522  TString s_package_data_path = "EcalCorrelatedNoiseAnalysisModules/data";
523  const Text_t *t_package_data_path = (const Text_t *)s_package_data_path.Data();
524  ModulesdataPath.Append(t_package_data_path);
525  ModulesdataPath.Append('/');
526  // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/src/CalibCalorimetry/EcalCorrelatedNoiseAnalysisModules/data/
527 
528  return ModulesdataPath;
529 }
530 //.....................................................................................
532 {
533  // ----- return the path of test/slc... subdirectory in CMSSW_X_Y_Z
534  TString TestslcPath = "";
535  //...... get HOME directory path, CMSSW version and Subsystem name
536  TString s_path_name = gSystem->Getenv("HOME");
537  const Text_t *t_path_name = (const Text_t *)s_path_name.Data();
538  TestslcPath.Append(t_path_name);
539  TestslcPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/
540 
541  TString s_cmssw = "cmssw";
542  const Text_t *t_cmssw = (const Text_t *)s_cmssw.Data();
543  TestslcPath.Append(t_cmssw);
544  TestslcPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/
545 
546  const Text_t *t_cmssw_version = (const Text_t *)CMSSWVersion().Data();
547  TestslcPath.Append(t_cmssw_version);
548  TestslcPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/
549 
550  TString s_test = "test";
551  const Text_t *t_test = (const Text_t *)s_test.Data();
552  TestslcPath.Append(t_test);
553  TestslcPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/test
554 
555  const Text_t *t_cmssw_subsystem = (const Text_t *)CMSSWSlc().Data();
556  TestslcPath.Append(t_cmssw_subsystem);
557  TestslcPath.Append('/'); // /afs/cern.ch/user/U/USERNAME/cmssw/CMSSW_X_Y_Z/test/slc4_ia32_gcc345/
558 
559  return TestslcPath;
560 }
561 
562 //============================================================================= Ancillary methods
563 
564 void TEcnaParPaths::SetResultsRootFilePath(const TString ImposedPath) {fCfgResultsRootFilePath = ImposedPath;}
565 void TEcnaParPaths::SetResultsAsciiFilePath(const TString ImposedPath){fCfgResultsAsciiFilePath = ImposedPath;}
566 
567 void TEcnaParPaths::TruncateResultsRootFilePath(const Int_t& n1, const Int_t& nbcar)
568 {fCfgResultsRootFilePath.Remove(n1,nbcar);}
569 
570 void TEcnaParPaths::TruncateResultsAsciiFilePath(const Int_t& n1, const Int_t& nbcar)
571 {fCfgResultsAsciiFilePath.Remove(n1,nbcar);}
572 
574 {TString sBegin = "?";
575  if( fCfgResultsRootFilePath.BeginsWith("$HOME") ){sBegin = "$HOME";}
576  return sBegin;}
577 
579 {TString sBegin = "?";
580  if( fCfgResultsAsciiFilePath.BeginsWith("$HOME") ){sBegin = "$HOME";}
581  return sBegin;}
582 
583 void TEcnaParPaths::AppendResultsRootFilePath(const Text_t * t_file_nohome)
584 {fCfgResultsRootFilePath.Append(t_file_nohome);}
585 
586 void TEcnaParPaths::AppendResultsAsciiFilePath(const Text_t * t_file_nohome)
587 {fCfgResultsAsciiFilePath.Append(t_file_nohome);}
void GetCMSSWParameters()
TString CMSSWSlc()
Bool_t fPathForResultsAsciiFiles
Definition: TEcnaParPaths.h:62
ifstream fFcin_rr
Definition: TEcnaParPaths.h:34
ifstream fFcin_ra
Definition: TEcnaParPaths.h:35
TString HistoryRunListFilePath()
TString fCfgCMSSWSlc
Definition: TEcnaParPaths.h:54
TString BeginningOfResultsRootFilePath()
TString CMSSWVersion()
void AppendResultsAsciiFilePath(const Text_t *)
TString fCfgResultsAsciiFilePath
Definition: TEcnaParPaths.h:43
ifstream fFcin_lor
Definition: TEcnaParPaths.h:36
TString fCfgCMSSWVersion
Definition: TEcnaParPaths.h:52
TString fCfgResultsRootFilePath
Definition: TEcnaParPaths.h:40
void SetResultsRootFilePath(const TString)
void GetPathForResultsAsciiFiles()
TString CMSSWSubsystem()
ifstream fFcin_cmssw
Definition: TEcnaParPaths.h:38
TString BeginningOfResultsAsciiFilePath()
Bool_t fPathForHistoryRunListFiles
Definition: TEcnaParPaths.h:63
TString PathModulesData()
TString PathTestSlc()
void SetResultsAsciiFilePath(const TString)
TString fCfgHistoryRunListFilePath
Definition: TEcnaParPaths.h:46
TString fFileForCMSSWParameters
Definition: TEcnaParPaths.h:55
TString fFileForHistoryRunListFilePath
Definition: TEcnaParPaths.h:47
TString fFileForResultsAsciiFilePath
Definition: TEcnaParPaths.h:44
void TruncateResultsRootFilePath(const Int_t &, const Int_t &)
TString fCfgCMSSWSubsystem
Definition: TEcnaParPaths.h:53
TString ResultsRootFilePath()
void GetPathForResultsRootFiles()
void GetPathForHistoryRunListFiles()
tuple cout
Definition: gather_cfg.py:41
Bool_t fPathForResultsRootFiles
Definition: TEcnaParPaths.h:61
TString fTTBELL
Definition: TEcnaParPaths.h:29
void TruncateResultsAsciiFilePath(const Int_t &, const Int_t &)
void AppendResultsRootFilePath(const Text_t *)
TString ResultsAsciiFilePath()
TString fFileForResultsRootFilePath
Definition: TEcnaParPaths.h:41