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 = "2009-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
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 Short_t PMT2LeChan[38] = {5, 22, 12, 29, 46, 36, 53, 70, 60, 101,
00105 0, 24, 118, 108, 125, 142, 132, 48, 96,
00106 5, 22, 12, 29, 46, 36, 53, 70, 60, 101,
00107 0, 24, 118, 108, 125, 142, 132, 48, 96};
00108 Short_t PMT2TeChan[38] = {5, 22, 12, 29, 46, 36, 53, 70, 60, 101,
00109 0, 24, 118, 108, 125, 142, 132, 48, 96,
00110 5, 22, 12, 29, 46, 36, 53, 70, 60, 101,
00111 0, 24, 118, 108, 125, 142, 132, 48, 96};
00112
00113 for(int i=0;i<24;i++) {
00114 Chan2MRPC[i] = (Chan2M[i] - 1)*6 + (Chan2C[i] - 1);
00115 MRPC2Chan[Chan2MRPC[i]] = i;
00116 }
00117
00118 for(int i=0;i<24;i++) {
00119 if(i%8==0) cout << endl;
00120 cout << " " << MRPC2Chan[i];
00121 }
00122 cout << endl;
00123
00124
00125
00126
00127
00128
00129
00130 cout << " West PMT 2 leading Tdc " << endl;
00131 for(int i=0;i<19;i++) cout << " " << PMT2LeChan[i];
00132 cout << endl;
00133 cout << " West PMT 2 trailing Tdc " << endl;
00134 for(int i=0;i<19;i++) cout << " " << PMT2TeChan[i];
00135 cout << endl;
00136
00137 cout << " East PMT 2 leading Tdc " << endl;
00138 for(int i=19;i<38;i++) cout << " " << PMT2LeChan[i];
00139 cout << endl;
00140 cout << " West PMT 2 trailing Tdc " << endl;
00141 for(int i=19;i<38;i++) cout << " " << PMT2TeChan[i];
00142 cout << endl;
00143
00144
00145 for(int i=0;i<NCHAN;i++) {
00146 int iboard = i/24;
00147 int ii = i%24;
00148
00149 daqmap[0].MRPC2TDIGChanMap[i] = iboard*24 + MRPC2Chan[ii];
00150 }
00151
00152 for(int i=0;i<50;i++) {
00153 if(i<NVPD*2) {
00154 daqmap[0].PMT2TDIGLeChanMap[i] = PMT2LeChan[i];
00155 daqmap[0].PMT2TDIGTeChanMap[i] = PMT2TeChan[i];
00156 } else {
00157 daqmap[0].PMT2TDIGLeChanMap[i] = -1;
00158 daqmap[0].PMT2TDIGTeChanMap[i] = -1;
00159 }
00160 }
00161
00162
00163 tofDaqMap->SetTable((char*)daqmap, 1);
00164
00165 dbManager->setStoreTime(ZStoreTime.Data());
00166
00167 cout<<" here "<<endl;
00168 dbManager->storeDbTable(tofDaqMap);
00169 cout<<"uploaded"<<endl;
00170
00171 }
00172