00001 #include "EmcCalibTowerv1.h"
00002 #include "EmcSnglCalibTowerv1.h"
00003 #include "dEmcCalibTowerWrapper.h"
00004
00005 #include "TClonesArray.h"
00006 #include <iostream>
00007
00008 ClassImp(EmcCalibTowerv1);
00009
00010 using namespace std;
00011
00012 static const unsigned int EMCNTOWER = 200;
00013
00014 EmcCalibTowerv1::EmcCalibTowerv1()
00015 {
00016 EmcNTower = 0;
00017 EmcTower = new TClonesArray("EmcSnglCalibTowerv1",EMCNTOWER);
00018 return;
00019 }
00020
00021 EmcCalibTowerv1::~EmcCalibTowerv1()
00022 {
00023 EmcTower->Clear();
00024 return;
00025 }
00026
00027 void EmcCalibTowerv1::identify(ostream& os) const
00028 {
00029 os << "identify yourself: EmcCalibTowerv1 Object" << endl;
00030 os << "No of Towers: " << EmcNTower << endl;
00031 return;
00032 }
00033
00034 void EmcCalibTowerv1::Reset()
00035 {
00036 EmcTower->Clear();
00037 if (EmcNTower>EMCNTOWER)
00038 {
00039 EmcTower->Expand(EMCNTOWER);
00040 }
00041 EmcNTower = 0;
00042 return;
00043 }
00044
00045 int EmcCalibTowerv1::isValid() const
00046 {
00047 return((EmcNTower>0) ? 1 : 0);
00048 }
00049
00050 void EmcCalibTowerv1::FillFromWrapper(dEmcCalibTowerWrapper *wrap)
00051 {
00052 unsigned int iclus;
00053 int index;
00054 if (wrap)
00055 {
00056 EmcNTower = wrap->RowCount();
00057 set_TClonesArraySize(wrap->RowCount());
00058 for (iclus = 0;iclus < wrap->RowCount();iclus++)
00059 {
00060 AddEmcTower(iclus);
00061 set_id(iclus, wrap->get_id(iclus));
00062 set_type(iclus, wrap->get_type(iclus));
00063
00064 set_deadmap(iclus, wrap->get_deadmap(iclus));
00065 set_hwkey(iclus, wrap->get_hwkey(iclus));
00066 index = 100000 * wrap->get_arm(iclus) +
00067 10000 * wrap->get_sector(iclus) +
00068 100 * wrap->get_ind(1, iclus) +
00069 wrap->get_ind(0, iclus);
00070 set_index(iclus,index);
00071 set_swkey(iclus, wrap->get_swkey(iclus));
00072 set_warnmap(iclus, wrap->get_warnmap(iclus));
00073
00074 set_adc(iclus, wrap->get_adc(iclus));
00075 set_ecal(iclus, wrap->get_ecal(iclus));
00076 set_tac(iclus, wrap->get_tac(iclus));
00077 set_tof(iclus, wrap->get_tof(iclus));
00078 }
00079 }
00080 return;
00081 }
00082
00083 int EmcCalibTowerv1::set_TClonesArraySize(const unsigned int ntower)
00084 {
00085 if (ntower > EMCNTOWER)
00086 {
00087 EmcTower->Expand(ntower);
00088 }
00089 return ntower;
00090 }
00091
00092 void EmcCalibTowerv1::AddEmcTower(const unsigned int itower)
00093 {
00094 TClonesArray &emctower = *EmcTower;
00095 new(emctower[itower]) EmcSnglCalibTowerv1();
00096 return;
00097 }
00098
00099 short EmcCalibTowerv1::get_arm(const unsigned int itower) const
00100 {
00101
00102 int key=get_index(itower);
00103 return key/100000;
00104
00105 }
00106
00107 short EmcCalibTowerv1::get_sector(const unsigned int itower) const
00108 {
00109
00110 int key=get_index(itower);
00111 return (key%100000)/10000;
00112
00113 }
00114
00115 short EmcCalibTowerv1::get_ind(const unsigned int itower, const short i) const
00116 {
00117
00118
00119
00120
00121 int key=get_index(itower);
00122
00123 if(i==0) return key%100;
00124 else if(i==1) return (key%10000)/100;
00125
00126 cerr<<PHWHERE<<"index "<<i<<"out of range"<<endl;
00127 return -999;
00128
00129 }
00130
00131 short EmcCalibTowerv1::get_id(const unsigned int itower) const
00132 {
00133
00134 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00135 return((emcclus) ? emcclus->get_id() : -999);
00136 }
00137
00138 void EmcCalibTowerv1::set_id(const unsigned int itower, const short ival)
00139 {
00140 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00141 if (emcclus)
00142 {
00143 emcclus->set_id(ival);
00144 }
00145 else
00146 {
00147 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00148 }
00149 return;
00150 }
00151
00152
00153 short EmcCalibTowerv1::get_type(const unsigned int itower) const
00154 {
00155
00156 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00157 return((emcclus) ? emcclus->get_type() : -999);
00158 }
00159
00160 void EmcCalibTowerv1::set_type(const unsigned int itower, const short ival)
00161 {
00162 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00163 if (emcclus)
00164 {
00165 emcclus->set_type(ival);
00166 }
00167 else
00168 {
00169 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00170 }
00171 return;
00172 }
00173
00174 int EmcCalibTowerv1::get_deadmap(const unsigned int itower) const
00175 {
00176
00177 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00178 return((emcclus) ? emcclus->get_deadmap() : -999);
00179 }
00180
00181 void EmcCalibTowerv1::set_deadmap(const unsigned int itower, const int ival)
00182 {
00183 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00184 if (emcclus)
00185 {
00186 emcclus->set_deadmap(ival);
00187 }
00188 else
00189 {
00190 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00191 }
00192 return;
00193 }
00194
00195 int EmcCalibTowerv1::get_hwkey(const unsigned int itower) const
00196 {
00197
00198 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00199 return((emcclus) ? emcclus->get_hwkey() : -999);
00200 }
00201
00202 void EmcCalibTowerv1::set_hwkey(const unsigned int itower, const int ival)
00203 {
00204 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00205 if (emcclus)
00206 {
00207 emcclus->set_hwkey(ival);
00208 }
00209 else
00210 {
00211 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00212 }
00213 return;
00214 }
00215
00216 int EmcCalibTowerv1::get_index(const unsigned int itower) const
00217 {
00218
00219 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00220 return((emcclus) ? emcclus->get_index() : -999);
00221 }
00222
00223 void EmcCalibTowerv1::set_index(const unsigned int itower, const int ival)
00224 {
00225 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00226 if (emcclus)
00227 {
00228 emcclus->set_index(ival);
00229 }
00230 else
00231 {
00232 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00233 }
00234 return;
00235 }
00236
00237 int EmcCalibTowerv1::get_swkey(const unsigned int itower) const
00238 {
00239
00240 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00241 return((emcclus) ? emcclus->get_swkey() : -999);
00242 }
00243
00244 void EmcCalibTowerv1::set_swkey(const unsigned int itower, const int ival)
00245 {
00246 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00247 if (emcclus)
00248 {
00249 emcclus->set_swkey(ival);
00250 }
00251 else
00252 {
00253 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00254 }
00255 return;
00256 }
00257
00258 int EmcCalibTowerv1::get_warnmap(const unsigned int itower) const
00259 {
00260
00261 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00262 return((emcclus) ? emcclus->get_warnmap() : -999);
00263 }
00264
00265 void EmcCalibTowerv1::set_warnmap(const unsigned int itower, const int ival)
00266 {
00267 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00268 if (emcclus)
00269 {
00270 emcclus->set_warnmap(ival);
00271 }
00272 else
00273 {
00274 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00275 }
00276 return;
00277 }
00278
00279 float EmcCalibTowerv1::get_adc(const unsigned int itower) const
00280 {
00281
00282 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00283 return((emcclus) ? emcclus->get_adc() : -9999.9);
00284 }
00285
00286 void EmcCalibTowerv1::set_adc(const unsigned int itower, const float rval)
00287 {
00288 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00289 if (emcclus)
00290 {
00291 emcclus->set_adc(rval);
00292 }
00293 else
00294 {
00295 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00296 }
00297 return;
00298 }
00299
00300 float EmcCalibTowerv1::get_ecal(const unsigned int itower) const
00301 {
00302
00303 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00304 return((emcclus) ? emcclus->get_ecal() : -9999.9);
00305 }
00306
00307 void EmcCalibTowerv1::set_ecal(const unsigned int itower, const float rval)
00308 {
00309 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00310 if (emcclus)
00311 {
00312 emcclus->set_ecal(rval);
00313 }
00314 else
00315 {
00316 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00317 }
00318 return;
00319 }
00320
00321
00322 float EmcCalibTowerv1::get_tac(const unsigned int itower) const
00323 {
00324
00325 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00326 return((emcclus) ? emcclus->get_tac() : -9999.9);
00327 }
00328
00329 void EmcCalibTowerv1::set_tac(const unsigned int itower, const float rval)
00330 {
00331 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00332 if (emcclus)
00333 {
00334 emcclus->set_tac(rval);
00335 }
00336 else
00337 {
00338 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00339 }
00340 return;
00341 }
00342
00343 float EmcCalibTowerv1::get_tof(const unsigned int itower) const
00344 {
00345
00346 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00347 return((emcclus) ? emcclus->get_tof() : -9999.9);
00348 }
00349
00350 void EmcCalibTowerv1::set_tof(const unsigned int itower, const float rval)
00351 {
00352 EmcSnglCalibTowerv1 *emcclus = (EmcSnglCalibTowerv1 *) GetEmcTower()->UncheckedAt(itower);
00353 if (emcclus)
00354 {
00355 emcclus->set_tof(rval);
00356 }
00357 else
00358 {
00359 cout << PHWHERE << "ERROR no EmcSnglCalibTowerv1 object found" << endl;
00360 }
00361 return;
00362 }