00001
00002 #include "FarDetStripHandle.h"
00003
00004 ClassImp(FarDetStripHandle)
00005
00006 FarDetStripHandle::FarDetStripHandle()
00007 {
00008
00009 }
00010
00011 FarDetStripHandle::FarDetStripHandle(const FarDetStripHandle &csh) :
00012 CandStripHandle(csh)
00013 {
00014
00015 }
00016
00017 FarDetStripHandle::FarDetStripHandle(FarDetStrip *cs) :
00018 CandStripHandle(cs)
00019 {
00020
00021 }
00022
00023 FarDetStripHandle::~FarDetStripHandle()
00024 {
00025
00026 }
00027
00028 FarDetStripHandle* FarDetStripHandle::DupHandle() const
00029 {
00030 return (new FarDetStripHandle(*this));
00031 }
00032
00033 void FarDetStripHandle::Trace(const char* c) const
00034 {
00035 CandHandle::Trace(c);
00036 }
00037
00038 void FarDetStripHandle::SetPlane(Int_t plane)
00039 {
00040 dynamic_cast<FarDetStrip*>(GetOwnedCandBase())->fPlane=plane;
00041 }
00042
00043 void FarDetStripHandle::SetStrip(Int_t strip)
00044 {
00045 dynamic_cast<FarDetStrip*>(GetOwnedCandBase())->fStrip=strip;
00046 }
00047
00048 void FarDetStripHandle::SetTime(CalTimeType::CalTimeType_t caltype_t, Double_t* time)
00049 {
00050 FarDetStrip* mystrip = dynamic_cast<FarDetStrip*>(GetOwnedCandBase());
00051
00052 switch (caltype_t) {
00053 case CalTimeType::kNone:
00054 mystrip->fRawTime[0]=time[0];
00055 mystrip->fRawTime[1]=time[1];
00056 mystrip->fRawTime[2]=time[2];
00057 break;
00058 case CalTimeType::kT0:
00059 mystrip->fCalTime[0]=time[0];
00060 mystrip->fCalTime[1]=time[1];
00061 mystrip->fCalTime[2]=time[2];
00062 break;
00063 default:
00064 break;
00065 }
00066 }
00067
00068 void FarDetStripHandle::SetCharge(CalDigitType::CalDigitType_t caltype_t, Double_t* charge)
00069 {
00070 FarDetStrip* mystrip = dynamic_cast<FarDetStrip*>(GetOwnedCandBase());
00071 switch (caltype_t) {
00072 case CalDigitType::kNone:
00073 mystrip->fChargeAdc[0] = charge[0];
00074 mystrip->fChargeAdc[1] = charge[1];
00075 break;
00076 case CalDigitType::kPE:
00077 mystrip->fChargePE[0] = charge[0];
00078 mystrip->fChargePE[1] = charge[1];
00079 break;
00080 case CalDigitType::kSigLin:
00081 mystrip->fChargeSigLin[0] = charge[0];
00082 mystrip->fChargeSigLin[1] = charge[1];
00083 break;
00084 case CalDigitType::kSigCorr:
00085 mystrip->fChargeSigCorr[0] = charge[0];
00086 mystrip->fChargeSigCorr[1] = charge[1];
00087 break;
00088 default:
00089 break;
00090 }
00091 }
00092
00093 void FarDetStripHandle::SetFibreLengths(Double_t* green, Double_t* wls, Double_t* clear, Double_t half)
00094 {
00095 FarDetStrip* mystrip = dynamic_cast<FarDetStrip*>(GetOwnedCandBase());
00096 for(Int_t i=0;i<2;i++){
00097 mystrip->fGreenFibre[i]=green[i];
00098 mystrip->fWlsPigtail[i]=wls[i];
00099 mystrip->fClearFibre[i]=clear[i];
00100 }
00101 mystrip->fHalfLength = half;
00102 }
00103
00104 void FarDetStripHandle::SetXtalk(Int_t* xtalk)
00105 {
00106 FarDetStrip* mystrip = dynamic_cast<FarDetStrip*>(GetOwnedCandBase());
00107
00108 mystrip->fXtalk[0]=xtalk[0];
00109 mystrip->fXtalk[1]=xtalk[1];
00110 mystrip->fXtalk[2]=xtalk[2];
00111 }
00112
00113 Int_t FarDetStripHandle::GetPlane() const
00114 {
00115 return dynamic_cast<const FarDetStrip*>(GetCandBase())->fPlane;
00116 }
00117
00118 Int_t FarDetStripHandle::GetStrip() const
00119 {
00120 return dynamic_cast<const FarDetStrip*>(GetCandBase())->fStrip;
00121 }
00122
00123 Double_t FarDetStripHandle::GetTime() const
00124 {
00125 return this->GetTime(StripEnd::kWhole,CalTimeType::kT0);
00126 }
00127
00128 Double_t FarDetStripHandle::GetTime(StripEnd::StripEnd_t stripend_t) const
00129 {
00130 return this->GetTime(stripend_t,CalTimeType::kT0);
00131 }
00132
00133 Double_t FarDetStripHandle::GetTime(CalTimeType::CalTimeType_t caltype_t) const
00134 {
00135 return this->GetTime(StripEnd::kWhole,caltype_t);
00136 }
00137
00138 Double_t FarDetStripHandle::GetTime(StripEnd::StripEnd_t stripend_t,CalTimeType::CalTimeType_t caltype_t) const
00139 {
00140 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00141
00142 Double_t time[3];
00143
00144 switch (caltype_t) {
00145 case CalTimeType::kNone:
00146 time[0] = mystrip->fRawTime[0];
00147 time[1] = mystrip->fRawTime[1];
00148 time[2] = mystrip->fRawTime[2];
00149 break;
00150 case CalTimeType::kT0:
00151 time[0] = mystrip->fCalTime[0];
00152 time[1] = mystrip->fCalTime[1];
00153 time[2] = mystrip->fCalTime[2];
00154 break;
00155 default:
00156 time[0] = mystrip->fCalTime[0];
00157 time[1] = mystrip->fCalTime[1];
00158 time[2] = mystrip->fCalTime[2];
00159 break;
00160 }
00161
00162 switch (stripend_t) {
00163 case StripEnd::kNegative:
00164 return time[0];
00165 break;
00166 case StripEnd::kPositive:
00167 return time[1];
00168 break;
00169 default:
00170 return time[2];
00171 break;
00172 }
00173 }
00174
00175 Double_t FarDetStripHandle::GetTime(CalTimeType::CalTimeType_t caltype_t,StripEnd::StripEnd_t stripend_t) const
00176 {
00177 return this->GetTime(stripend_t,caltype_t);
00178 }
00179
00180 Double_t FarDetStripHandle::GetBegTime() const
00181 {
00182 return this->GetTime();
00183 }
00184
00185 Double_t FarDetStripHandle::GetBegTime(StripEnd::StripEnd_t stripend_t) const
00186 {
00187 return this->GetTime(stripend_t);
00188 }
00189
00190 Double_t FarDetStripHandle::GetBegTime(CalTimeType::CalTimeType_t caltype_t) const
00191 {
00192 return this->GetTime(caltype_t);
00193 }
00194
00195 Double_t FarDetStripHandle::GetBegTime(StripEnd::StripEnd_t stripend_t,CalTimeType::CalTimeType_t caltype_t) const
00196 {
00197 return this->GetTime(stripend_t,caltype_t);
00198 }
00199
00200 Double_t FarDetStripHandle::GetBegTime(CalTimeType::CalTimeType_t caltype_t,StripEnd::StripEnd_t stripend_t) const
00201 {
00202 return this->GetTime(caltype_t,stripend_t);
00203 }
00204
00205 Double_t FarDetStripHandle::GetEndTime() const
00206 {
00207 return this->GetTime();
00208 }
00209
00210 Double_t FarDetStripHandle::GetEndTime(StripEnd::StripEnd_t stripend_t) const
00211 {
00212 return this->GetTime(stripend_t);
00213 }
00214
00215 Double_t FarDetStripHandle::GetEndTime(CalTimeType::CalTimeType_t caltype_t) const
00216 {
00217 return this->GetTime(caltype_t);
00218 }
00219
00220 Double_t FarDetStripHandle::GetEndTime(StripEnd::StripEnd_t stripend_t,CalTimeType::CalTimeType_t caltype_t) const
00221 {
00222 return this->GetTime(stripend_t,caltype_t);
00223 }
00224
00225 Double_t FarDetStripHandle::GetEndTime(CalTimeType::CalTimeType_t caltype_t,StripEnd::StripEnd_t stripend_t) const
00226 {
00227 return this->GetTime(caltype_t,stripend_t);
00228 }
00229
00230 Double_t FarDetStripHandle::GetCharge() const
00231 {
00232 return this->GetCharge(StripEnd::kWhole,CalDigitType::kPE);
00233
00234 }
00235
00236 Double_t FarDetStripHandle::GetCharge(StripEnd::StripEnd_t stripend_t) const
00237 {
00238 return this->GetCharge(stripend_t,CalDigitType::kPE);
00239 }
00240
00241 Double_t FarDetStripHandle::GetCharge(CalDigitType::CalDigitType_t caltype_t) const
00242 {
00243 return this->GetCharge(StripEnd::kWhole,caltype_t);
00244 }
00245
00246 Double_t FarDetStripHandle::GetCharge(StripEnd::StripEnd_t stripend_t,CalDigitType::CalDigitType_t caltype_t) const
00247 {
00248 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00249
00250 Double_t charge[2];
00251
00252 switch (caltype_t) {
00253 case CalDigitType::kNone:
00254 charge[0] = mystrip->fChargeAdc[0];
00255 charge[1] = mystrip->fChargeAdc[1];
00256 break;
00257 case CalDigitType::kPE:
00258 charge[0] = mystrip->fChargePE[0];
00259 charge[1] = mystrip->fChargePE[1];
00260 break;
00261 case CalDigitType::kSigLin:
00262 charge[0] = mystrip->fChargeSigLin[0];
00263 charge[1] = mystrip->fChargeSigLin[1];
00264 break;
00265 case CalDigitType::kSigCorr:
00266 charge[0] = mystrip->fChargeSigCorr[0];
00267 charge[1] = mystrip->fChargeSigCorr[1];
00268 break;
00269 default:
00270 charge[0] = mystrip->fChargePE[0];
00271 charge[1] = mystrip->fChargePE[1];
00272 break;
00273 }
00274
00275 switch (stripend_t) {
00276 case StripEnd::kNegative:
00277 return charge[0];
00278 break;
00279 case StripEnd::kPositive:
00280 return charge[1];
00281 break;
00282 default:
00283 return charge[0]+charge[1];
00284 break;
00285 }
00286 }
00287
00288 Double_t FarDetStripHandle::GetCharge(CalDigitType::CalDigitType_t caltype_t,StripEnd::StripEnd_t stripend_t) const
00289 {
00290 return this->GetCharge(stripend_t,caltype_t);
00291 }
00292
00293 Double_t FarDetStripHandle::GetGreenFibre(StripEnd::StripEnd_t stripend_t) const
00294 {
00295 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00296
00297 switch (stripend_t) {
00298 case StripEnd::kNegative:
00299 return mystrip->fGreenFibre[0];
00300 break;
00301 case StripEnd::kPositive:
00302 return mystrip->fGreenFibre[1];
00303 break;
00304 default:
00305 return 0.0;
00306 break;
00307 }
00308 }
00309
00310 Double_t FarDetStripHandle::GetWlsPigtail(StripEnd::StripEnd_t stripend_t) const
00311 {
00312 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00313
00314 switch (stripend_t) {
00315 case StripEnd::kNegative:
00316 return mystrip->fWlsPigtail[0];
00317 break;
00318 case StripEnd::kPositive:
00319 return mystrip->fWlsPigtail[1];
00320 break;
00321 default:
00322 return 0.0;
00323 break;
00324 }
00325 }
00326
00327 Double_t FarDetStripHandle::GetClearFibre(StripEnd::StripEnd_t stripend_t) const
00328 {
00329 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00330
00331 switch (stripend_t) {
00332 case StripEnd::kNegative:
00333 return mystrip->fClearFibre[0];
00334 break;
00335 case StripEnd::kPositive:
00336 return mystrip->fClearFibre[1];
00337 break;
00338 default:
00339 return 0.0;
00340 break;
00341 }
00342 }
00343
00344 Double_t FarDetStripHandle::GetHalfLength() const
00345 {
00346 return dynamic_cast<const FarDetStrip*>(GetCandBase())->fHalfLength;
00347 }
00348
00349 Int_t FarDetStripHandle::IsXtalk(StripEnd::StripEnd_t stripend_t) const
00350 {
00351 const FarDetStrip* mystrip = dynamic_cast<const FarDetStrip*>(GetCandBase());
00352
00353 switch (stripend_t) {
00354 case StripEnd::kNegative:
00355 return mystrip->fXtalk[0];
00356 break;
00357 case StripEnd::kPositive:
00358 return mystrip->fXtalk[1];
00359 break;
00360 default:
00361 return mystrip->fXtalk[2];
00362 break;
00363 }
00364 }
00365
00366
00367 XXXITRIMP(FarDetStripHandle)