00001 #include "GaudiKernel/MsgStream.h"
00002 #include "CalibData/Tof/bTofCalibBase.h"
00003 #include "CalibData/Tof/bTofCommonCalibBase.h"
00004 #include "CalibData/Tof/eTofCalibBase.h"
00005 #include "CalibData/Tof/etfCalibBase.h"
00006 #include "CalibData/Tof/TofCalibData.h"
00007
00008 namespace CalibData {
00009
00010 TofCalibData::TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<etfCalibBase>* etfCal,std::vector<etfBunchCalibBase>* etfBunchCal,std::vector<tofCalibInfoBase>* tofInfoCal){
00011 if(bTofCal){
00012 m_bTofCalibData = new std::vector<bTofCalibBase>(*bTofCal);
00013 }
00014 if(bTofComCal){
00015 m_bTofCommonCalibData = new std::vector<bTofCommonCalibBase>(*bTofComCal);
00016 }
00017 if(eTofCal){
00018 m_eTofCalibData = new std::vector<eTofCalibBase>(*eTofCal);
00019 }
00020
00021 m_hasEtf = false;
00022 m_etfCalibData = NULL;
00023 if( etfCal->size() > 0 ) {
00024 m_hasEtf = true;
00025 m_etfCalibData = new std::vector<etfCalibBase>(*etfCal);
00026 }
00027 m_hasEtfBunch = false;
00028 m_etfBunchCalibData = NULL;
00029 if( etfBunchCal->size() > 0 ) {
00030 m_hasEtfBunch = true;
00031 m_etfBunchCalibData = new std::vector<etfBunchCalibBase>(*etfBunchCal);
00032 }
00033
00034 if(tofInfoCal){
00035 m_tofCalibInfoData = new std::vector<tofCalibInfoBase>(*tofInfoCal);
00036 }
00037 }
00038
00039 TofCalibData::TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<etfCalibBase>* etfCal,std::vector<tofCalibInfoBase>* tofInfoCal){
00040 if(bTofCal){
00041 m_bTofCalibData = new std::vector<bTofCalibBase>(*bTofCal);
00042 }
00043 if(bTofComCal){
00044 m_bTofCommonCalibData = new std::vector<bTofCommonCalibBase>(*bTofComCal);
00045 }
00046 if(eTofCal){
00047 m_eTofCalibData = new std::vector<eTofCalibBase>(*eTofCal);
00048 }
00049
00050 m_hasEtf = false;
00051 m_etfCalibData = NULL;
00052 if( etfCal->size() > 0 ) {
00053 m_hasEtf = true;
00054 m_etfCalibData = new std::vector<etfCalibBase>(*etfCal);
00055 }
00056 m_hasEtfBunch = false;
00057 m_etfBunchCalibData = NULL;
00058
00059 if(tofInfoCal){
00060 m_tofCalibInfoData = new std::vector<tofCalibInfoBase>(*tofInfoCal);
00061 }
00062 }
00063
00064 TofCalibData::TofCalibData(std::vector<bTofCalibBase>* bTofCal,std::vector<bTofCommonCalibBase>* bTofComCal,std::vector<eTofCalibBase>* eTofCal,std::vector<tofCalibInfoBase>* tofInfoCal){
00065 if(bTofCal){
00066 m_bTofCalibData = new std::vector<bTofCalibBase>(*bTofCal);
00067 }
00068 if(bTofComCal){
00069 m_bTofCommonCalibData = new std::vector<bTofCommonCalibBase>(*bTofComCal);
00070 }
00071 if(eTofCal){
00072 m_eTofCalibData = new std::vector<eTofCalibBase>(*eTofCal);
00073 }
00074 if(tofInfoCal){
00075 m_tofCalibInfoData = new std::vector<tofCalibInfoBase>(*tofInfoCal);
00076 }
00077 m_hasEtf = false;
00078 m_etfCalibData = NULL;
00079 m_hasEtfBunch = false;
00080 m_etfBunchCalibData = NULL;
00081 }
00082
00083 StatusCode TofCalibData::update(CalibBase1& other, MsgStream* log)
00084 {
00085 TofCalibData& other1 = dynamic_cast<TofCalibData& >(other);
00086 std::cout<<"========================================"<<"\n"<<"here is the update in the TofCalibData"<<"\n"<<"========================================"<<std::endl;
00087 CalibBase1::update(other, log);
00088 delete m_bTofCalibData;
00089 m_bTofCalibData = new std::vector<bTofCalibBase>(*(other1.m_bTofCalibData));
00090 delete m_bTofCommonCalibData;
00091 m_bTofCommonCalibData = new std::vector<bTofCommonCalibBase>(*(other1.m_bTofCommonCalibData));
00092 delete m_eTofCalibData;
00093 m_eTofCalibData = new std::vector<eTofCalibBase>(*(other1.m_eTofCalibData));
00094 delete m_tofCalibInfoData;
00095 m_tofCalibInfoData = new std::vector<tofCalibInfoBase>(*(other1.m_tofCalibInfoData));
00096
00097 if( m_etfCalibData ) { delete m_etfCalibData; }
00098 if( other1.m_etfCalibData ) {
00099 if( (other1.m_etfCalibData)->size() > 0 ) {
00100 m_etfCalibData = new std::vector<etfCalibBase>(*(other1.m_etfCalibData));
00101 m_hasEtf = true;
00102 }
00103 }
00104 else {
00105 m_etfCalibData = NULL;
00106 m_hasEtf = false;
00107 }
00108
00109 if( m_etfBunchCalibData ) { delete m_etfBunchCalibData; }
00110 if( other1.m_etfBunchCalibData ) {
00111 if( (other1.m_etfBunchCalibData)->size() > 0 ) {
00112 m_etfBunchCalibData = new std::vector<etfBunchCalibBase>(*(other1.m_etfBunchCalibData));
00113 m_hasEtfBunch = true;
00114 }
00115 }
00116 else {
00117 m_etfBunchCalibData = NULL;
00118 m_hasEtfBunch = false;
00119 }
00120
00121 return StatusCode::SUCCESS;
00122 }
00123
00124
00125
00126 bTofCalibBase TofCalibData::getBTof(int cnt) const{
00127 std::vector<bTofCalibBase>::iterator it = m_bTofCalibData->begin();
00128 for(int i=0;i!=cnt;i++,it++) {
00129 }
00130 return *it;
00131 }
00132
00133 bTofCommonCalibBase TofCalibData::getBTofCom() const{
00134 std::vector<bTofCommonCalibBase>::iterator it = m_bTofCommonCalibData->begin();
00135 return *it;
00136 }
00137
00138 eTofCalibBase TofCalibData::getETof(int cnt) const{
00139 std::vector<eTofCalibBase>::iterator it = m_eTofCalibData->begin();
00140 for(int i=0;i!=cnt;i++,it++) {
00141 }
00142 return *it;
00143 }
00144
00145 etfCalibBase TofCalibData::getEtf(int cnt,int strip) const{
00146 std::vector<etfCalibBase>::iterator it = m_etfCalibData->begin();
00147 for(int i=0;i!=cnt;i++) {
00148 for( int j=0;j!=12;j++,it++) {
00149 }
00150 }
00151 for( int j=0;j!=strip;j++,it++) {
00152 }
00153 return *it;
00154 }
00155
00156 etfBunchCalibBase TofCalibData::getEtfBunch() const{
00157 std::vector<etfBunchCalibBase>::iterator it = m_etfBunchCalibData->begin();
00158 return *it;
00159 }
00160
00161 tofCalibInfoBase TofCalibData::getTofInfo() const{
00162 std::vector<tofCalibInfoBase>::iterator it = m_tofCalibInfoData->begin();
00163 return *it;
00164 }
00165
00166 double TofCalibData::getBTofAtten(int index,int pardex){
00167 bTofCalibBase bTof = getBTof(index);
00168 return bTof.getAtten(pardex);
00169 }
00170
00171 double TofCalibData::getBTofSpeed(int index,int pardex){
00172 bTofCalibBase bTof = getBTof(index);
00173 return bTof.getSpeed(pardex);
00174 }
00175
00176 double TofCalibData::getBTofPleft(int index,int pardex){
00177 bTofCalibBase bTof = getBTof(index);
00178 return bTof.getP1(pardex);
00179 }
00180
00181 double TofCalibData::getBTofPright(int index,int pardex){
00182 bTofCalibBase bTof = getBTof(index);
00183 return bTof.getP2(pardex);
00184 }
00185
00186 double TofCalibData::getBTofPoffleft_bunch0(int index,int pardex){
00187 bTofCalibBase bTof = getBTof(index);
00188 return bTof.getPoff1_bunch0(pardex);
00189 }
00190
00191 double TofCalibData::getBTofPoffright_bunch0(int index,int pardex){
00192 bTofCalibBase bTof = getBTof(index);
00193 return bTof.getPoff2_bunch0(pardex);
00194 }
00195
00196 double TofCalibData::getBTofPoffleft_bunch1(int index,int pardex){
00197 bTofCalibBase bTof = getBTof(index);
00198 return bTof.getPoff1_bunch1(pardex);
00199 }
00200
00201 double TofCalibData::getBTofPoffright_bunch1(int index,int pardex){
00202 bTofCalibBase bTof = getBTof(index);
00203 return bTof.getPoff2_bunch1(pardex);
00204 }
00205
00206 double TofCalibData::getBTofPoffleft_bunch2(int index,int pardex){
00207 bTofCalibBase bTof = getBTof(index);
00208 return bTof.getPoff1_bunch2(pardex);
00209 }
00210
00211 double TofCalibData::getBTofPoffright_bunch2(int index,int pardex){
00212 bTofCalibBase bTof = getBTof(index);
00213 return bTof.getPoff2_bunch2(pardex);
00214 }
00215
00216 double TofCalibData::getBTofPoffleft_bunch3(int index,int pardex){
00217 bTofCalibBase bTof = getBTof(index);
00218 return bTof.getPoff1_bunch3(pardex);
00219 }
00220
00221 double TofCalibData::getBTofPoffright_bunch3(int index,int pardex){
00222 bTofCalibBase bTof = getBTof(index);
00223 return bTof.getPoff2_bunch3(pardex);
00224 }
00225
00226 double TofCalibData::getBTofFleft(int index,int pardex){
00227 bTofCalibBase bTof = getBTof(index);
00228 return bTof.getFleft(pardex);
00229 }
00230
00231 double TofCalibData::getBTofFright(int index,int pardex){
00232 bTofCalibBase bTof = getBTof(index);
00233 return bTof.getFright(pardex);
00234 }
00235
00236 double TofCalibData::getBTofFcounter(int index,int pardex){
00237 bTofCalibBase bTof = getBTof(index);
00238 return bTof.getFcounter(pardex);
00239 }
00240
00241 double TofCalibData::getBTofOffset(int pardex){
00242 bTofCommonCalibBase bTofCom = getBTofCom();
00243 return bTofCom.getOffset(pardex);
00244 }
00245
00246 double TofCalibData::getBTofSigmaCorr(int pardex){
00247 bTofCommonCalibBase bTofCom = getBTofCom();
00248 return bTofCom.getSigmaCorr(pardex);
00249 }
00250
00251 double TofCalibData::getETofAtten(int index,int pardex){
00252 eTofCalibBase eTof = getETof(index);
00253 return eTof.getAtten(pardex);
00254 }
00255
00256 double TofCalibData::getETofSpeed(int index,int pardex){
00257 eTofCalibBase eTof = getETof(index);
00258 return eTof.getSpeed(pardex);
00259 }
00260
00261 double TofCalibData::getETofP(int index,int pardex){
00262 eTofCalibBase eTof = getETof(index);
00263 return eTof.getP(pardex);
00264 }
00265
00266 double TofCalibData::getETofFP(int index,int pardex){
00267 eTofCalibBase eTof = getETof(index);
00268 return eTof.getFP(pardex);
00269 }
00270
00271 double TofCalibData::getEtfSpeed(int index,int strip,int pardex){
00272 if( !m_hasEtf ) { return 1.0; }
00273 etfCalibBase etf = getEtf(index,strip);
00274 return etf.getSpeed(pardex);
00275 }
00276
00277 double TofCalibData::getEtfPcombine(int index,int strip,int pardex){
00278 if( !m_hasEtf ) { return 1.0; }
00279 etfCalibBase etf = getEtf(index,strip);
00280 return etf.getP(pardex);
00281 }
00282
00283 double TofCalibData::getEtfPleft(int index,int strip,int pardex){
00284 if( !m_hasEtf ) { return 1.0; }
00285 etfCalibBase etf = getEtf(index,strip);
00286 return etf.getP1(pardex);
00287 }
00288
00289 double TofCalibData::getEtfPright(int index,int strip,int pardex){
00290 if( !m_hasEtf ) { return 1.0; }
00291 etfCalibBase etf = getEtf(index,strip);
00292 return etf.getP2(pardex);
00293 }
00294
00295 double TofCalibData::getEtfPBunch(int pardex){
00296 if( !m_hasEtfBunch ) { return 0.0; }
00297 etfBunchCalibBase etfBunch = getEtfBunch();
00298 return etfBunch.getPBunch(pardex);
00299 }
00300
00301 int TofCalibData::getRunBegin(){
00302 tofCalibInfoBase tofInfo = getTofInfo();
00303 return tofInfo.getRunBegin();
00304 }
00305
00306 int TofCalibData::getRunEnd(){
00307 tofCalibInfoBase tofInfo = getTofInfo();
00308 return tofInfo.getRunEnd();
00309 }
00310
00311 int TofCalibData::getVersion(){
00312 tofCalibInfoBase tofInfo = getTofInfo();
00313 return tofInfo.getVersion();
00314 }
00315
00316 int TofCalibData::getQCorr(){
00317 tofCalibInfoBase tofInfo = getTofInfo();
00318 return tofInfo.getQCorr();
00319 }
00320
00321 int TofCalibData::getQElec(){
00322 tofCalibInfoBase tofInfo = getTofInfo();
00323 return tofInfo.getQElec();
00324 }
00325
00326 int TofCalibData::getMisLable(){
00327 tofCalibInfoBase tofInfo = getTofInfo();
00328 return tofInfo.getMisLable();
00329 }
00330
00331 int TofCalibData::getBrEast(int index){
00332 tofCalibInfoBase tofInfo = getTofInfo();
00333 return tofInfo.getBrEast(index);
00334 }
00335
00336 int TofCalibData::getBrWest(int index){
00337 tofCalibInfoBase tofInfo = getTofInfo();
00338 return tofInfo.getBrWest(index);
00339 }
00340
00341 int TofCalibData::getEndcap(int index){
00342 tofCalibInfoBase tofInfo = getTofInfo();
00343 return tofInfo.getEndcap(index);
00344 }
00345
00346 }
00347
00348