/[PAMELA software]/yoda/techmodel/techmodelreader.cpp
ViewVC logotype

Annotation of /yoda/techmodel/techmodelreader.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4.0.8.1 - (hide annotations) (download)
Tue Apr 4 13:06:04 2006 UTC (18 years, 8 months ago) by kusanagi
Branch: PreThermistores2
Changes since 4.0: +20 -10 lines
Added "version" option

1 kusanagi 1.1
2 kusanagi 1.7 #include <log4cxx/logger.h>
3     #include <log4cxx/basicconfigurator.h>
4     #include <log4cxx/fileappender.h>
5     #include <log4cxx/patternlayout.h>
6     #include <log4cxx/propertyconfigurator.h>
7     #include <log4cxx/helpers/exception.h>
8 kusanagi 1.1
9     #include "TROOT.h"
10    
11     #include "TechmodelPamelaRun.h"
12     #include "EventReader.h"
13 kusanagi 1.7
14 kusanagi 1.1 #include <cstdlib>
15 kusanagi 1.7 #include <iostream>
16 kusanagi 1.1 #include <time.h>
17 kusanagi 2.2 #include "Exception.h"
18    
19 kusanagi 1.1 extern "C" {
20     //#include "DirectoryStructure.h"
21     #include <dirent.h>
22     }
23    
24    
25 kusanagi 2.1
26 kusanagi 1.1 using namespace pamela;
27 kusanagi 1.7 using namespace log4cxx;
28     using namespace std;
29 kusanagi 1.1 using namespace pamela::techmodel;
30    
31 kusanagi 1.7 static LoggerPtr logger = Logger::getLogger(_T("pamela.techmodel.TechmodelReader"));
32 kusanagi 1.1
33     int main(int argc, char* argv[]) {
34 kusanagi 1.7
35     stringstream oss;
36     int maxPackets = 0;
37     char nomeFileLog[L_tmpnam];
38     tmpnam(nomeFileLog);
39     DIR *dirp;
40 kusanagi 2.2
41     // check if yoda_DATA exist!!!!
42     char *outDir;
43     try {
44     outDir = getenv("YODA_DATA");
45 kusanagi 2.3 if (getenv("YODA_DATA") == NULL) throw NotFoundEnvironmentVarException("The variable YODA_DATA has not been found.");
46 kusanagi 2.2 } catch (NotFoundEnvironmentVarException exc) {
47 kusanagi 2.4 cout << "The variable YODA_DATA has not been found. \n";
48     cout << "Please check your environment variables \n";
49 kusanagi 2.2 oss.str("");
50     oss << exc.print();
51     logger->fatal(oss.str().c_str());
52 kusanagi 2.3 exit(1);
53 kusanagi 2.2 }
54    
55     string pathDir(outDir);
56    
57 kusanagi 1.7 string pathLog = nomeFileLog;
58     //---------------- Log4cxx configuration-----------------------------------------------
59     //Define the configuration file to be used on log4cxx
60     PropertyConfigurator::configure(pathDir + "/log4cxx.conf");
61     //BasicConfigurator::configure();
62     //Retrieve the rootLogger and append to it a default FileAppender.
63     //Note that the priority level of the rootLogger (defined in log4cxx.conf) is unmodified
64     //LoggerPtr rootLogger = Logger::getRootLogger();
65    
66     //FileAppender *fileAppender = new FileAppender();
67     //fileAppender->setFile(pathLog);
68     //fileAppender->setAppend(false);
69     //fileAppender->setBufferedIO(true); //the default size is 8k
70     //fileAppender->setBufferSize(1000000);
71     //fileAppender->activateOptions();
72     //fileAppender->setLayout(new PatternLayout());
73    
74     //FileAppender *fileAppender = new FileAppender(new PatternLayout(), pathLog, false, true, 10000);
75     //rootLogger->addAppender(fileAppender);
76     //rootLogger->removeAppender('A1');
77     //---------------- Log4cxx configuration-----------------------------------------------
78    
79 kusanagi 1.1 // Check file name
80 kusanagi 1.7
81     if (argc < 2){
82     //logger->info(_T("You have forgotten the file name."));
83     cout << "You have forgotten the file name. \n";
84 kusanagi 4.0.8.1 cout << "Try '-help' for more information. \n";
85 kusanagi 1.7 exit(1);
86     }
87    
88 kusanagi 4.0.8.1 if (!strcmp(argv[1], "-help")){
89 kusanagi 1.7 cout << "Usage: yoda FILE [OPTION] \n";
90 kusanagi 4.0.8.1 cout << "\t -help print this help and exit \n";
91 kusanagi 1.7 cout << "\t -p maximum number of packets to process [default all] \n";
92     exit(1);
93     }
94    
95 kusanagi 4.0.8.1 if (!strcmp(argv[1], "-version")){
96     cout << GetVersionInfo() << "\n";
97     exit(1);
98     }
99    
100 kusanagi 1.7 ifstream from (argv[1]);
101     if (!from) {
102     //logger->info(_T("The file does not exist."));
103     cout << "The file does not exist. \n";
104 kusanagi 1.1 exit(1);
105     }
106    
107 kusanagi 1.7 for (int i = 2; i < argc; i++){
108     if (!strcmp(argv[i], "-p")){
109     if (++i >= argc){
110     cerr << "-p needs arguments. \n";
111 kusanagi 4.0.8.1 cout << "Try '-help' for more information. \n";
112 kusanagi 1.7 exit(1);
113     }
114     if (isdigit(*argv[i])) {
115     maxPackets = atoi(argv[i]);
116     } else {
117     //logger->info(_T("The file does not exist."));
118     cerr << "-p needs a integer value. \n";
119 kusanagi 4.0.8.1 cout << "Try '-help' for more information. \n";
120 kusanagi 1.7 exit(1);
121     }
122     }
123    
124     if (!maxPackets){
125 kusanagi 4.0.8.1 cout << "Try '-help' for more information. \n";
126 kusanagi 1.7 exit(1);
127     }
128 kusanagi 2.1
129 kusanagi 4.0.8.1
130 kusanagi 1.7 }
131    
132 kusanagi 1.1
133     //--------------------------------------------------
134     //This is the configuration for the Yoda Logger
135     //The parameters in the RollingFileAppender means
136     // default ------------>the selected category
137     // YodaLog.txt ------------>the LogFile name
138     // 1000 ------------>The max size (in Kb) of the LogFile
139     // 5 ------------>How many times the file will be backup
140 kusanagi 1.6
141 kusanagi 1.1 time_t rawtime;
142     struct tm * timeinfo;
143     time ( &rawtime );
144     timeinfo = localtime ( &rawtime );
145 kusanagi 1.7
146 kusanagi 2.1 oss.str("");
147 kusanagi 1.7 oss << "<-------------------------------START UNPACKING------------------------------->\n"
148     << " Starting the program at: " << asctime (timeinfo) << " Opening file: " << argv[1];
149     logger->info(oss.str().c_str());
150    
151    
152 kusanagi 1.1 gROOT->SetBatch(kTRUE);
153 kusanagi 1.7 EventReader *reader = new EventReader(maxPackets);
154 kusanagi 1.1
155     int num = 0;
156     TechmodelPamelaRun Run(argv[1]);
157 kusanagi 1.7 reader->Init(&Run);
158    
159 kusanagi 2.1 oss.str("");
160 kusanagi 1.7 oss << "Init successul ok" << asctime (timeinfo);
161     logger->debug(oss.str().c_str());
162    
163     reader->RunEvent(num); //TBD --- eliminate the runNumber
164     reader->Finish();
165 kusanagi 1.1 Run.WriteFiles();
166 kusanagi 1.7
167     logger->info("<-------------------------------END UNPACKING------------------------------->\n");
168    
169     //Momentarly suspended the save
170     //system(command.c_str());
171 kusanagi 1.1 }
172 kusanagi 4.0.8.1
173     /**
174     * Get a string with the version info of the algorithm.
175     */
176     const char* GetVersionInfo(void) const {
177     return
178     "$Trailer: /home/cvsmanager/yoda/techmodel/TestTrkReader.cpp,v 1.1.1.1 2004/07/06 12:20:23 kusanagi Exp $\n";
179     }

  ViewVC Help
Powered by ViewVC 1.1.23