Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:44:33

0001 //   COCOA class implementation file

0002 //Id:  ALIFileOut.C

0003 //CAT: Model

0004 //

0005 //   History: v1.0

0006 //   Pedro Arce

0007 
0008 #include "Alignment/CocoaUtilities/interface/ALIFileOut.h"
0009 
0010 #include <cstdlib>
0011 #include <strstream>
0012 
0013 std::vector<ALIFileOut*> ALIFileOut::theInstances;
0014 
0015 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

0016 //@@ get the instance of file with name filename

0017 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

0018 ALIFileOut& ALIFileOut::getInstance(const ALIstring& filename) {
0019   std::vector<ALIFileOut*>::const_iterator vfcite;
0020   for (vfcite = theInstances.begin(); vfcite != theInstances.end(); ++vfcite) {
0021     if ((*vfcite)->name() == filename) {
0022       return *(*vfcite);
0023       break;
0024     }
0025   }
0026 
0027   if (vfcite == theInstances.end()) {
0028     ALIFileOut* instance = new ALIFileOut(filename);
0029     instance->open(filename.c_str());
0030     if (!instance) {
0031       std::cerr << "!! cannot open output file " << filename << std::endl;
0032       exit(0);
0033     }
0034     theInstances.push_back(instance);
0035     return *instance;
0036   }
0037 
0038   ALIFileOut* instance = new ALIFileOut(filename);  // it will not reach here, only to avoid warning

0039   return *instance;
0040 }