00001 #include "Qoptions.h"
00002 #include <iostream>
00003 #include <math.h>
00004 #include "tree.h"
00005 #ifndef NDetMax
00006 #define NDetMax 1010
00007 #endif
00008 using namespace std;
00009
00010 extern Det *rcDETRegion[2][3][4];
00011 extern Det rcDET[NDetMax];
00012 extern Options opt;
00013 extern EUppLow operator++(enum EUppLow &rs, int );
00014 extern ERegion operator++(enum ERegion &rs, int );
00015 extern Etype operator++(enum Etype &rs, int );
00016 extern Edir operator++(enum Edir &rs, int );
00017
00018
00019
00020
00021
00022
00031
00032 void Qoptions::Get(char *optionsfile){
00033 FILE *options;
00034 char line[256];
00035 char *word;
00036 EUppLow upplow;
00037 ERegion region;
00038 Etype type;
00039
00040
00041 int maxlevels;
00042
00043 int maxchar = 256;
00044 options = fopen(optionsfile,"r");
00045 while(!feof(options)){
00046 fgets(line,maxchar,options);
00047 if(feof(options))break;
00048 word = strtok(line," ");
00049 if(*word == 'u' || *word == 'd'){
00050 switch(*word){
00051 case 'u':
00052 upplow = w_upper;
00053 break;
00054 case 'd':
00055 upplow = w_lower;
00056 break;
00057 default :
00058 upplow = w_nowhere;
00059 break;
00060 }
00061 word = strtok(NULL," ");
00062 switch(*word){
00063 case '1':
00064 region = r1;
00065 break;
00066 case '2':
00067 region = r2;
00068 break;
00069 case '3':
00070 region = r3;
00071 break;
00072 }
00073 word = strtok(NULL," ");
00074 switch(*word){
00075 case 'd':
00076 type = d_drift;
00077 break;
00078 case 'g':
00079 type = d_gem;
00080 break;
00081 case 't':
00082 type = d_trigscint;
00083 break;
00084 case 'c':
00085 type = d_cerenkov;
00086 break;
00087
00088 }
00089
00090 word = strtok(NULL," ");
00091 maxlevels = atoi(word);
00092 opt.levels[upplow][region-1][type]=maxlevels;
00093 }
00094 else{
00095 switch(*word){
00096 case '1':
00097 opt.showEventPattern = 1;
00098 break;
00099 case '0':
00100 opt.showEventPattern = 0;
00101 break;
00102 }
00103 word = strtok(NULL," ");
00104 switch(*word){
00105 case '1':
00106 opt.showMatchingPatterns = 1;
00107 break;
00108 case '0':
00109 opt.showMatchingPatterns = 0;
00110 break;
00111 }
00112 word = strtok(NULL," ");
00113 switch(*word){
00114 case '1':
00115 opt.showMatchedPattern = 1;
00116 break;
00117 case '0':
00118 opt.showMatchedPattern = 0;
00119 break;
00120 }
00121
00122 }
00123 }
00124 return;
00125 }
00126
00127 Qoptions::Qoptions(){
00128
00129 }
00130