00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <iostream>
00016 #include <fstream>
00017 #include <string>
00018 using namespace std;
00019
00020
00021 void storetofDaqMap()
00022
00023
00024 {
00025
00026 const Int_t NCHAN = 192;
00027 const Int_t NVPD = 19;
00028
00029
00030 gSystem->Load("St_base");
00031 gSystem->Load("StChain");
00032 gSystem->Load("StUtilities");
00033 gSystem->Load("St_Tables.so");
00034
00035 gSystem->Load("StDbLib.so");
00036 gSystem->Load("libStDb_Tables.so");
00037
00038
00039 StDbManager* dbManager = StDbManager::Instance();
00040
00041
00042 StDbConfigNode* configNode = dbManager->initConfig("Calibrations_tof");
00043
00044
00045 TString ZStoreTime = "2008-11-01 00:00:00";
00046
00047
00048 StDbTable* tofDaqMap = configNode->addDbTable("tofDaqMap");
00049
00050
00051 tofDaqMap_st *daqmap = new tofDaqMap_st[1];
00052
00053 Short_t Chan2M[24] = {1, 3, 2, 3, 2, 1, 2, 1,
00054 3, 4, 1, 2, 4, 4, 1, 1,
00055 4, 4, 3, 3, 2, 4, 3, 2};
00056
00057
00058
00059 Short_t Chan2C[24] = {4, 2, 3, 4, 5, 2, 1, 6,
00060 6, 1, 3, 2, 3, 5, 1, 5,
00061 6, 4, 5, 3, 4, 2, 1, 6};
00062
00063 Short_t Chan2MRPC[24], MRPC2Chan[24];
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 Short_t PMT2LeChan[38] = {142,122,118,98,46,26,22,2,112,101,
00094 24,136,123,120,99,40,27,16,3,
00095 142,122,118,98,46,26,22,2,112,101,
00096 24,136,123,120,99,40,27,16,3};
00097 Short_t PMT2TeChan[38] = {129,131,105,107,33,35,9,11,109,110,
00098 39,133,132,135,108,37,36,13,12,
00099 129,131,105,107,33,35,9,11,109,110,
00100 39,133,132,135,108,37,36,13,12};
00101
00102 for(int i=0;i<24;i++) {
00103 Chan2MRPC[i] = (Chan2M[i] - 1)*6 + (Chan2C[i] - 1);
00104 MRPC2Chan[Chan2MRPC[i]] = i;
00105 }
00106
00107 for(int i=0;i<24;i++) {
00108 if(i%8==0) cout << endl;
00109 cout << " " << MRPC2Chan[i];
00110 }
00111 cout << endl;
00112
00113
00114
00115
00116
00117
00118
00119 cout << " West PMT 2 leading Tdc " << endl;
00120 for(int i=0;i<19;i++) cout << " " << PMT2LeChan[i];
00121 cout << endl;
00122 cout << " West PMT 2 trailing Tdc " << endl;
00123 for(int i=0;i<19;i++) cout << " " << PMT2TeChan[i];
00124 cout << endl;
00125
00126 cout << " East PMT 2 leading Tdc " << endl;
00127 for(int i=19;i<38;i++) cout << " " << PMT2LeChan[i];
00128 cout << endl;
00129 cout << " West PMT 2 trailing Tdc " << endl;
00130 for(int i=19;i<38;i++) cout << " " << PMT2TeChan[i];
00131 cout << endl;
00132
00133
00134 for(int i=0;i<NCHAN;i++) {
00135 int iboard = i/24;
00136 int ii = i%24;
00137
00138 daqmap[0].MRPC2TDIGChanMap[i] = iboard*24 + MRPC2Chan[ii];
00139 }
00140
00141 for(int i=0;i<50;i++) {
00142 if(i<NVPD*2) {
00143 daqmap[0].PMT2TDIGLeChanMap[i] = PMT2LeChan[i];
00144 daqmap[0].PMT2TDIGTeChanMap[i] = PMT2TeChan[i];
00145 } else {
00146 daqmap[0].PMT2TDIGLeChanMap[i] = -1;
00147 daqmap[0].PMT2TDIGTeChanMap[i] = -1;
00148 }
00149 }
00150
00151
00152
00153 tofDaqMap->SetTable((char*)daqmap, 1);
00154
00155 dbManager->setStoreTime(ZStoreTime.Data());
00156
00157 cout<<" here "<<endl;
00158 dbManager->storeDbTable(tofDaqMap);
00159 cout<<"uploaded"<<endl;
00160
00161 }
00162