00001
00002 #include<stdio.h>
00003 #include<iostream>
00004 #include "db/DBInit.h"
00005 #include "configObjects/LdaConfiguration.h"
00006 #include "configObjects/DccConfiguration.h"
00007 #include "configObjects/DifConfiguration.h"
00008 #include "configObjects/AsicConfiguration.h"
00009 #include "configObjects/State.h"
00010 #include "configObjects/Setup.h"
00011 #include "daq/RunInfo.h"
00012 #include <boost/date_time/posix_time/posix_time_types.hpp>
00013 using namespace oracle::occi;
00014 using namespace std;
00015
00016
00017
00018
00019 int main (ub4 argc, char* argv[])
00020 {
00021 try{
00022
00023 DBInit::init();
00024
00025
00026 vector<string> setups = Setup::getSetupNames();
00027 for ( vector<string>::const_iterator itSetup = setups.begin(); itSetup != setups.end() ; itSetup++ )
00028 {
00029 string setupName = *(itSetup);
00030 if ( setupName.find("LAPP") != string::npos && setupName.find("MR") != string::npos && setupName.find("HR") == string::npos )
00031 {
00032 Setup * setup = Setup::getSetup(setupName);
00033
00034 vector<State *> states = setup->getStates();
00035 for ( vector<State*>::const_iterator it = states.begin(); it != states.end() ; it++ )
00036 {
00037 State * state = *it;
00038 cout << "State name: " << state->getName()<< endl;
00039 DifConfiguration *dif_conf = state->getDifConfiguration();
00040 vector<ConfigObject*> difs = dif_conf->getVector();
00041
00042 AsicConfiguration *asic_conf = state->getAsicConfiguration() ;
00043 vector<ConfigObject*> asics = asic_conf->getVector();
00044 cout<<"\t"<<asics.size()<<" asic"<<endl;
00045 for ( unsigned int i = 0 ; i < asics.size() ; i++ )
00046 {
00047 cout<<" Recuperation des seuils sur le premier ASIC :"<<endl;
00048 int dif_id = asics[i]->getInt("DIF_ID");
00049 int position = asics[i]->getInt("HEADER");
00050 string type = asics[i]->getString("ASIC_TYPE");
00051 int b0 = asics[i]->getInt("BB0");
00052 int b1 = asics[i]->getInt("BB1");
00053 int b2 = asics[i]->getInt("BB2");
00054
00055 cout << "Asic type:" << type << endl;
00056 cout<<" Seuils de l'asic en position "<<position<<" sur la dif "<<dif_id<<" : "<<b0<<" "<<b1<<" "<<b2<<endl;
00057 }
00058 }
00059
00060 delete (setup);
00061 }
00062 }
00063
00064 }
00065 catch(Exception e){
00066 cout<<"ERROR: " << e.getMessage()<<endl;
00067 }
00068 DBInit::terminate();
00069 }
00070
00071