#include <AltDeMuxCalc.h>
Public Member Functions | |
AltDeMuxCalc () | |
~AltDeMuxCalc () | |
void | SetClearFibreC (Float_t c) |
void | SetWLSFibreC (Float_t c) |
void | SetScintillatorC (Float_t c) |
void | SetNumberOfStrips (Int_t n) |
void | SetFibreLengthE (Int_t iplane, PlexSEIdAltL *paltlist) |
void | SetFibreLengthW (Int_t iplane, PlexSEIdAltL *paltlist) |
void | SetUgli (UgliGeomHandle *p) |
void | SetPlane (Int_t iplane) |
void | SetView (PlaneView::PlaneView_t view) |
void | SetEast (PlexSEIdAltL *pListE, Int_t stripE) |
void | SetWest (PlexSEIdAltL *pListW, Int_t stripW) |
void | SetEastToStrip (PlexSEIdAltL *pListE, Int_t stripE) |
void | SetWestToStrip (PlexSEIdAltL *pListW, Int_t stripW) |
void | SetAbsTime (Double_t absTime) |
Double_t | GetAbsTime () |
void | CalcEastWest () |
void | CalcEast () |
void | CalcWest () |
void | CalcBestEastWest () |
void | CalcBestEast () |
void | CalcBestWest () |
void | CalcDt () |
Int_t | StripAim () |
Float_t | CurrentQ (PlexSEIdAltL *pAltList) |
Float_t | AttCorWLS (Float_t lWlsInMetres) |
Float_t | AttCorClear (Float_t lClearInMetres) |
Float_t | SigmaDQ () |
Float_t | QRawE () |
Float_t | QRawW () |
Float_t | QSigCorE () |
Float_t | QSigCorW () |
Float_t | QAttCorE () |
Float_t | QAttCorW () |
Float_t | PairQCor () |
Float_t | GetClearE () |
Float_t | GetClearW () |
Float_t | GetWlsE () |
Float_t | GetWlsW () |
Double_t | GetTE () |
Double_t | GetTW () |
Float_t | DT () |
Float_t | TimeWalk (float adc) |
void | FindNearestEdge (Float_t x, Float_t y, Int_t &iedge, Float_t &d) |
Private Member Functions | |
ClassDef (AltDeMuxCalc, 0) | |
Private Attributes | |
UgliGeomHandle * | pUgh |
Int_t | fPlane |
PlaneView::PlaneView_t | fView |
PlexSEIdAltL * | pAltListE |
PlexSEIdAltL * | pAltListW |
Double_t | fAbsTime |
bool | fEastIsSet |
bool | fWestIsSet |
bool | fDtIsSet |
bool | fDQIsSet |
Int_t | fStripE |
Int_t | fStripW |
Float_t | fQE |
Float_t | fQW |
Float_t | fQEc |
Float_t | fQWc |
Float_t | fQAttCorE |
Float_t | fQAttCorW |
Float_t | fClearE |
Float_t | fClearW |
Float_t | fWlsE |
Float_t | fWlsW |
Double_t | fTE |
Double_t | fTW |
Double_t | fDt |
Float_t | fDQ |
Int_t | fStripAim |
Float_t | fQEcor |
Float_t | fQWcor |
Float_t | fClearFibreC |
Float_t | fWLSFibreC |
Float_t | fScintillatorC |
Float_t | fDt2Dstrip |
Int_t | fNumberOfStrips |
Float_t | fWLSFibreLengthE [MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS] |
Float_t | fWLSFibreLengthW [MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS] |
Float_t | fClearFibreLengthE [MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS] |
Float_t | fClearFibreLengthW [MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS] |
Float_t | fAttCorWLS [2500] |
Float_t | fAttCorClear [2500] |
|
Definition at line 22 of file AltDeMuxCalc.cxx. References fAttCorClear, fAttCorWLS, fClearFibreLengthE, fClearFibreLengthW, fWLSFibreLengthE, fWLSFibreLengthW, MAX_NUMBER_OF_PLANES, and MAX_NUMBER_OF_STRIPS.
00023 { 00024 00025 for(Int_t ip=0;ip<MAX_NUMBER_OF_PLANES;ip++){ 00026 for(Int_t is=0;is<MAX_NUMBER_OF_STRIPS;is++){ 00027 fWLSFibreLengthE[ip][is] = -999.; 00028 fClearFibreLengthE[ip][is] = -999.; 00029 fWLSFibreLengthW[ip][is] = -999.; 00030 fClearFibreLengthW[ip][is] = -999.; 00031 } 00032 } 00033 00034 00035 // build the look up table for attenuation corrections 00036 // store in 1cm steps - to a maximum of 25m 00037 for(Int_t iwls=0; iwls<2500;iwls++){ 00038 Float_t lWls = static_cast<Float_t>(iwls); 00039 lWls = lWls/100.; 00040 fAttCorWLS[iwls] = 1.0/( 0.666*exp(-lWls/7.05)+ 0.333*exp(-(lWls)/1.05)); 00041 } 00042 for(Int_t iclear=0; iclear<2500;iclear++){ 00043 Float_t lClear = static_cast<Float_t>(iclear); 00044 lClear = lClear/100.; 00045 fAttCorClear[iclear] = exp(+(lClear)/10.); 00046 } 00047 return; 00048 } |
|
Definition at line 51 of file AltDeMuxCalc.cxx.
00052 { 00053 00054 } |
|
Definition at line 71 of file AltDeMuxCalc.cxx. References fAttCorClear, and MSG. Referenced by SigmaDQ().
00072 { 00073 00074 Int_t iclear = static_cast<Int_t>(lclear*100.); 00075 if(iclear>=2500){ 00076 MSG("AlgAltDeMux", Msg::kDebug) << "AltDeMuxCalc::AttClear requested correction for too long Clear fibre" << endl; 00077 iclear = 2500; 00078 } 00079 00080 return fAttCorClear[iclear]; 00081 } |
|
Definition at line 58 of file AltDeMuxCalc.cxx. References fAttCorWLS, and MSG. Referenced by SigmaDQ().
00059 { 00060 00061 Int_t iwls = static_cast<Int_t>(lwls*100.); 00062 if(iwls>=2500){ 00063 MSG("AlgAltDeMux", Msg::kDebug) << "AltDeMuxCalc::AttWLS requested correction for too long WLS fibre" << endl; 00064 iwls = 2500; 00065 } 00066 00067 return fAttCorWLS[iwls]; 00068 } |
|
Definition at line 230 of file AltDeMuxCalc.cxx. References fClearE, fClearFibreLengthE, fDQIsSet, fDtIsSet, fEastIsSet, fPlane, fQE, fQEc, fStripE, fTE, fWlsE, fWLSFibreLengthE, PlexSEIdAltL::GetBestItem(), PlexSEIdAltLItem::GetPE(), PlexSEIdAltLItem::GetSigCorr(), PlexSEIdAltLItem::GetSigLin(), PlexSEIdAltLItem::GetTime(), MSG, pAltListE, and TimeWalk(). Referenced by CalcBestEastWest(), and AlgAltDeMuxBase::DeMuxSingleHitE().
00231 { 00232 00233 if(fEastIsSet)return; 00234 00235 fQE = pAltListE->GetBestItem().GetPE(); 00236 fQEc = pAltListE->GetBestItem().GetSigCorr()/60.; 00237 if(fQE/fQEc<0.1 || fQE/fQEc > 10.0){ 00238 MSG("AltDeMux", Msg::kDebug) << "AltDeMuxCalc::CalcBestEast Large/small SigCor/SigPE ratio : " <<fQEc/fQE << " for Plane : " << fPlane << endl; 00239 fQEc=fQE; 00240 } 00241 00242 00243 fClearE = fClearFibreLengthE[fPlane][fStripE]; 00244 fWlsE = fWLSFibreLengthE[fPlane][fStripE]; 00245 00246 // timewalk correction based on adc - ok so I cheat and use SigLin 00247 // which is OK since corrections neg for high adc 00248 float adc = pAltListE->GetBestItem().GetSigLin(); 00249 fTE = pAltListE->GetBestItem().GetTime()*1.0E9-this->TimeWalk(adc); 00250 fEastIsSet=true; 00251 fDtIsSet = false; 00252 fDQIsSet = false; 00253 00254 return; 00255 } |
|
Definition at line 153 of file AltDeMuxCalc.cxx. References CalcBestEast(), and CalcBestWest(). Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), and AltDeMuxModule::SelectCleanMuons().
00154 { 00155 this->CalcBestEast(); 00156 this->CalcBestWest(); 00157 return; 00158 } |
|
|
Definition at line 284 of file AltDeMuxCalc.cxx. References CalcEast(), CalcWest(), fClearE, fClearFibreC, fClearW, fDt, fDtIsSet, fEastIsSet, fTE, fTW, fWestIsSet, fWlsE, fWLSFibreC, and fWlsW. Referenced by AltDeMuxModule::SelectCleanMuons(), SigmaDQ(), and StripAim().
00285 { 00286 00287 if(!fEastIsSet)this->CalcEast(); 00288 if(!fWestIsSet)this->CalcWest(); 00289 fDt = (fTW -fTE)-(fClearW-fClearE)/fClearFibreC-(fWlsW-fWlsE)/fWLSFibreC; 00290 fDtIsSet = true; 00291 00292 return; 00293 00294 } |
|
Definition at line 173 of file AltDeMuxCalc.cxx. References fClearE, fClearFibreLengthE, fDQIsSet, fDtIsSet, fEastIsSet, fPlane, fQE, fQEc, fStripE, fTE, fWlsE, fWLSFibreLengthE, PlexSEIdAltL::GetCurrentItem(), PlexSEIdAltLItem::GetPE(), PlexSEIdAltLItem::GetSigCorr(), PlexSEIdAltLItem::GetSigLin(), PlexSEIdAltLItem::GetTime(), MSG, pAltListE, and TimeWalk(). Referenced by CalcDt(), and CalcEastWest().
00174 { 00175 00176 if(fEastIsSet)return; 00177 00178 fQE = pAltListE->GetCurrentItem().GetPE(); 00179 fQEc = pAltListE->GetCurrentItem().GetSigCorr()/60.; 00180 if(fQE/fQEc<0.1 || fQE/fQEc > 10.0){ 00181 MSG("AltDeMux", Msg::kDebug) << "AltDeMuxCalc::CalcEast Large/small SigCor/SigPE ratio : " <<fQEc/fQE << " for Plane : " << fPlane << endl; 00182 fQEc=fQE; 00183 } 00184 00185 fClearE = fClearFibreLengthE[fPlane][fStripE]; 00186 fWlsE = fWLSFibreLengthE[fPlane][fStripE]; 00187 00188 // timewalk correction based on adc - ok so I cheat and use SigLin 00189 // which is OK since corrections neg for high adc 00190 float adc = pAltListE->GetCurrentItem().GetSigLin(); 00191 fTE = pAltListE->GetCurrentItem().GetTime()*1.0E9 - this->TimeWalk(adc); 00192 00193 fEastIsSet=true; 00194 fDtIsSet = false; 00195 fDQIsSet = false; 00196 00197 return; 00198 } |
|
Definition at line 145 of file AltDeMuxCalc.cxx. References CalcEast(), and CalcWest(). Referenced by AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
|
|
Definition at line 201 of file AltDeMuxCalc.cxx. References fClearFibreLengthW, fClearW, fDQIsSet, fDtIsSet, fPlane, fQW, fQWc, fStripW, fTW, fWestIsSet, fWLSFibreLengthW, fWlsW, PlexSEIdAltL::GetCurrentItem(), PlexSEIdAltLItem::GetPE(), PlexSEIdAltLItem::GetSigCorr(), PlexSEIdAltLItem::GetSigLin(), PlexSEIdAltLItem::GetTime(), MSG, pAltListW, and TimeWalk(). Referenced by CalcDt(), and CalcEastWest().
00202 { 00203 00204 if(fWestIsSet)return; 00205 00206 fQW = pAltListW->GetCurrentItem().GetPE(); 00207 fQWc = pAltListW->GetCurrentItem().GetSigCorr()/60.; 00208 if(fQW/fQWc<0.1 || fQW/fQWc > 10.0){ 00209 00210 MSG("AltDeMux", Msg::kDebug) << "AltDeMuxCalc::CalcWest Large/small SigCor/SigPE ratio : " <<fQWc/fQW << " for Plane : " << fPlane << endl; 00211 fQWc=fQW; 00212 } 00213 00214 fClearW = fClearFibreLengthW[fPlane][fStripW]; 00215 fWlsW = fWLSFibreLengthW[fPlane][fStripW]; 00216 00217 // timewalk correction based on adc - ok so I cheat and use SigLin 00218 // which is OK since corrections neg for high adc 00219 float adc = pAltListW->GetCurrentItem().GetSigLin(); 00220 fTW = pAltListW->GetCurrentItem().GetTime()*1.0E9 - this->TimeWalk(adc); 00221 00222 fWestIsSet=true; 00223 fDtIsSet = false; 00224 fDQIsSet = false; 00225 00226 return; 00227 } |
|
|
|
Definition at line 161 of file AltDeMuxCalc.cxx. References PlexSEIdAltL::GetCurrentItem(), PlexSEIdAltLItem::GetPE(), and PlexSEIdAltLItem::GetSigCorr(). Referenced by AlgAltDeMuxBase::ValidateOneSidedPlaneForPattern(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00162 { 00163 00164 Float_t Q = pAltList->GetCurrentItem().GetPE(); 00165 Float_t Qc = pAltList->GetCurrentItem().GetSigCorr()/60.; 00166 if(Q/Qc<0.1 || Q/Qc > 10.0){ 00167 Qc=Q; 00168 } 00169 00170 return Qc; 00171 } |
|
Definition at line 66 of file AltDeMuxCalc.h. References fDt. Referenced by AltDeMuxModule::SelectCleanMuons().
00066 {return fDt;} |
|
Definition at line 390 of file AltDeMuxCalc.cxx. Referenced by AlgAltDeMuxBase::EventID().
00391 { 00392 00393 Float_t d1 = fabs(x); 00394 Float_t d2 = fabs(y); 00395 Float_t d3 = 0.70711*fabs(x-y); 00396 Float_t d4 = 0.70711*fabs(x+y); 00397 00398 if(d1>d2){ 00399 if(d3>d4){ 00400 if(d1>d3){ 00401 d = 4.0-d1; 00402 if(x>0)iedge=3; 00403 if(x<=0)iedge=7; 00404 }else{ 00405 d = 4.0-d3; 00406 if(x-y>0)iedge=4; 00407 if(x-y<=0)iedge=8; 00408 } 00409 }else{ 00410 if(d1>d4){ 00411 d = 4.0-d1; 00412 if(x>0)iedge=3; 00413 if(x<=0)iedge=7; 00414 }else{ 00415 d = 4.0-d4; 00416 if(x+y>0)iedge=2; 00417 if(x+y<=0)iedge=6; 00418 } 00419 } 00420 }else{ 00421 if(d3>d4){ 00422 if(d2>d3){ 00423 d = 4.0-d2; 00424 if(y>0)iedge=1; 00425 if(y<=0)iedge=5; 00426 00427 }else{ 00428 d = 4.0-d3; 00429 if(x-y>0)iedge=4; 00430 if(x-y<=0)iedge=8; 00431 } 00432 }else{ 00433 if(d2>d4){ 00434 d = 4.0-d2; 00435 if(y>0)iedge=1; 00436 if(y<=0)iedge=5; 00437 }else{ 00438 d = 4.0-d4; 00439 if(x+y>0)iedge=2; 00440 if(x+y<=0)iedge=6; 00441 } 00442 } 00443 } 00444 00445 return; 00446 } |
|
Definition at line 40 of file AltDeMuxCalc.h. References fAbsTime. Referenced by AlgAltDeMuxBase::IsXTalk().
00040 {return fAbsTime;}; |
|
Definition at line 60 of file AltDeMuxCalc.h. References fClearE. Referenced by AltDeMuxModule::SelectCleanMuons().
00060 {return fClearE;} |
|
Definition at line 61 of file AltDeMuxCalc.h. References fClearW. Referenced by AltDeMuxModule::SelectCleanMuons().
00061 {return fClearW;} |
|
Definition at line 64 of file AltDeMuxCalc.h. References fTE. Referenced by AltDeMuxModule::SelectCleanMuons().
00064 {return fTE;} |
|
Definition at line 65 of file AltDeMuxCalc.h. References fTW. Referenced by AltDeMuxModule::SelectCleanMuons().
00065 {return fTW;} |
|
Definition at line 62 of file AltDeMuxCalc.h. References fWlsE. Referenced by AltDeMuxModule::SelectCleanMuons().
00062 {return fWlsE;} |
|
Definition at line 63 of file AltDeMuxCalc.h. References fWlsW. Referenced by AltDeMuxModule::SelectCleanMuons().
00063 {return fWlsW;} |
|
Definition at line 59 of file AltDeMuxCalc.h. Referenced by AltDeMuxModule::Ana(), and AlgAltDeMuxBase::DeMuxHits().
|
|
Definition at line 57 of file AltDeMuxCalc.h. References fQAttCorE. Referenced by AlgAltDeMuxBase::MakePlaneMap().
00057 {return fQAttCorE;}; |
|
Definition at line 58 of file AltDeMuxCalc.h. References fQAttCorW. Referenced by AlgAltDeMuxBase::MakePlaneMap().
00058 {return fQAttCorW;}; |
|
Definition at line 53 of file AltDeMuxCalc.h. References fQE. Referenced by AlgAltDeMuxBase::MakePlaneMap().
00053 {return fQE;}; |
|
Definition at line 54 of file AltDeMuxCalc.h. References fQW. Referenced by AlgAltDeMuxBase::MakePlaneMap().
00054 {return fQW;}; |
|
Definition at line 55 of file AltDeMuxCalc.h. References fQEc. Referenced by AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitE(), AlgAltDeMuxBase::MakePlaneMap(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00055 {return fQEc;}; |
|
Definition at line 56 of file AltDeMuxCalc.h. References fQWc. Referenced by AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitW(), AlgAltDeMuxBase::MakePlaneMap(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00056 {return fQWc;}; |
|
Definition at line 39 of file AltDeMuxCalc.h. References fAbsTime. Referenced by AlgAltDeMuxBase::MakeAltListMap().
00039 {fAbsTime = absTime;}; |
|
Definition at line 26 of file AltDeMuxCalc.h. References fClearFibreC. Referenced by AltDeMuxModule::AltDeMuxModule(), and AlgAltDeMuxBase::SetConstants().
00026 {fClearFibreC=c;}; |
|
Definition at line 84 of file AltDeMuxCalc.cxx. References fEastIsSet, fStripE, and pAltListE. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitE(), AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), and AltDeMuxModule::SelectCleanMuons().
00085 { 00086 00087 pAltListE = pE; 00088 fStripE = stripE; 00089 fEastIsSet = false; 00090 00091 return; 00092 } |
|
Definition at line 125 of file AltDeMuxCalc.cxx. References fEastIsSet, fStripE, PlexSEIdAltL::GetCurrentSEId(), PlexStripEndId::GetStrip(), PlexSEIdAltL::IsValid(), MSG, PlexSEIdAltL::Next(), pAltListE, and PlexSEIdAltL::SetFirst(). Referenced by AlgAltDeMuxBase::ValidatePlaneForPattern().
00126 { 00127 bool notFound = true; 00128 pE->SetFirst(); 00129 while( pE->IsValid() && notFound ){ 00130 Int_t is = pE->GetCurrentSEId().GetStrip(); 00131 if(is==stripE)notFound=false; 00132 if(notFound)pE->Next(); 00133 } 00134 00135 if(notFound)MSG("AltDeMux", Msg::kError) << "AltDeMuxCalc::SetEastToStrip Could not find strip " << stripE << " in PlexSEIdAltL " << endl; 00136 00137 pAltListE = pE; 00138 fStripE = stripE; 00139 fEastIsSet = false; 00140 00141 return; 00142 } |
|
Definition at line 353 of file AltDeMuxCalc.cxx. References UgliStripHandle::ClearFiber(), fClearFibreLengthE, fWLSFibreLengthE, PlexSEIdAltL::GetCurrentSEId(), PlexStripEndId::GetStrip(), UgliGeomHandle::GetStripHandle(), UgliStripHandle::IsValid(), MSG, pUgh, and UgliStripHandle::WlsPigtail(). Referenced by AltDeMuxModule::GetFibreLengths(), and AlgAltDeMuxBase::GetFibreLengths().
00354 { 00355 00356 Int_t istrip = paltlist->GetCurrentSEId().GetStrip(); 00357 if(fClearFibreLengthE[iplane][istrip]>0)return; 00358 00359 UgliStripHandle ush = pUgh->GetStripHandle(paltlist->GetCurrentSEId()); 00360 if(ush.IsValid()){ 00361 fClearFibreLengthE[iplane][istrip] = ush.ClearFiber(StripEnd::kEast); 00362 fWLSFibreLengthE[iplane][istrip] = ush.WlsPigtail(StripEnd::kEast); 00363 }else{ 00364 MSG("AltDeMux", Msg::kFatal) << "AltDeMuxCalc::SetFibreLengthE => UgliStripHandle NOT VALID : plane " << iplane << ":" << istrip << " (Carry on regardless)" << endl; 00365 } 00366 00367 return; 00368 00369 } |
|
Definition at line 371 of file AltDeMuxCalc.cxx. References UgliStripHandle::ClearFiber(), fClearFibreLengthW, fWLSFibreLengthW, PlexSEIdAltL::GetCurrentSEId(), PlexStripEndId::GetStrip(), UgliGeomHandle::GetStripHandle(), UgliStripHandle::IsValid(), MSG, pUgh, and UgliStripHandle::WlsPigtail(). Referenced by AltDeMuxModule::GetFibreLengths(), and AlgAltDeMuxBase::GetFibreLengths().
00372 { 00373 00374 Int_t istrip = paltlist->GetCurrentSEId().GetStrip(); 00375 if(fWLSFibreLengthW[iplane][istrip]>0)return; 00376 00377 UgliStripHandle ush = pUgh->GetStripHandle(paltlist->GetCurrentSEId()); 00378 if(ush.IsValid()){ 00379 fClearFibreLengthW[iplane][istrip] = ush.ClearFiber(StripEnd::kWest); 00380 fWLSFibreLengthW[iplane][istrip] = ush.WlsPigtail(StripEnd::kWest); 00381 }else{ 00382 MSG("AltDeMux", Msg::kFatal) << "AltDeMuxCalc::SetFibreLengthW => UgliStripHandle NOT VALID : plane " << iplane << ":" << istrip << " (Carry on regardless)" << endl; 00383 } 00384 return; 00385 00386 } |
|
Definition at line 29 of file AltDeMuxCalc.h. References fNumberOfStrips. Referenced by AltDeMuxModule::AltDeMuxModule(), and AlgAltDeMuxBase::SetConstants().
00029 {fNumberOfStrips=n;}; |
|
Definition at line 33 of file AltDeMuxCalc.h. References fPlane. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitE(), AlgAltDeMuxBase::DeMuxSingleHitW(), AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), AltDeMuxModule::SelectCleanMuons(), AlgAltDeMuxBase::ValidateOneSidedPlaneForPattern(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00033 {fPlane = iplane;}; |
|
Definition at line 28 of file AltDeMuxCalc.h. References fDt2Dstrip, and fScintillatorC. Referenced by AltDeMuxModule::AltDeMuxModule(), and AlgAltDeMuxBase::SetConstants().
00028 {fScintillatorC=c;fDt2Dstrip=fScintillatorC/2.0/0.042;}; |
|
Definition at line 32 of file AltDeMuxCalc.h. References pUgh. Referenced by AltDeMuxModule::Ana(), and AlgAltDeMuxBase::SetConstants().
00032 {pUgh=p;}; |
|
Definition at line 34 of file AltDeMuxCalc.h. References fView, and PlaneView::PlaneView_t. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitE(), AlgAltDeMuxBase::DeMuxSingleHitW(), AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), AltDeMuxModule::SelectCleanMuons(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00034 {fView=view ;}; |
|
Definition at line 94 of file AltDeMuxCalc.cxx. References fStripW, fWestIsSet, and pAltListW. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::DeMuxSingleHitW(), AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), and AltDeMuxModule::SelectCleanMuons().
00095 { 00096 00097 pAltListW = pW; 00098 fStripW = stripW; 00099 fWestIsSet = false; 00100 00101 return; 00102 } |
|
Definition at line 105 of file AltDeMuxCalc.cxx. References fStripW, fWestIsSet, PlexSEIdAltL::GetCurrentSEId(), PlexStripEndId::GetStrip(), PlexSEIdAltL::IsValid(), MSG, PlexSEIdAltL::Next(), pAltListW, and PlexSEIdAltL::SetFirst(). Referenced by AlgAltDeMuxBase::ValidatePlaneForPattern().
00106 { 00107 00108 bool notFound = true; 00109 pW->SetFirst(); 00110 while( pW->IsValid() && notFound ){ 00111 Int_t is = pW->GetCurrentSEId().GetStrip(); 00112 if(is==stripW)notFound=false; 00113 if(notFound)pW->Next(); 00114 } 00115 00116 if(notFound)MSG("AltDeMux", Msg::kError) << "AltDeMuxCalc::SetWestToStrip Could not find strip " << stripW << " in PlexSEIdAltL " << endl; 00117 00118 pAltListW = pW; 00119 fStripW = stripW; 00120 fWestIsSet = false; 00121 00122 return; 00123 } |
|
Definition at line 27 of file AltDeMuxCalc.h. References fWLSFibreC. Referenced by AltDeMuxModule::AltDeMuxModule(), and AlgAltDeMuxBase::SetConstants().
00027 {fWLSFibreC=c;}; |
|
Definition at line 317 of file AltDeMuxCalc.cxx. References AttCorClear(), AttCorWLS(), CalcDt(), fClearE, fClearW, fDQ, fDQIsSet, fDt, fDtIsSet, fQAttCorE, fQAttCorW, fQEc, fQWc, fWlsE, and fWlsW. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::MakePlaneMap(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), and AlgAltDeMuxBase::ValidatePlaneForPattern().
00318 { 00319 00320 if(!fDtIsSet)this->CalcDt(); 00321 if(fDQIsSet)return fDQ; 00322 Float_t le = 4.0-0.0823*fDt; 00323 Float_t lw = 4.0+0.0823*fDt; 00324 if(lw>8.0)lw = 8.0; 00325 if(le>8.0)le = 8.0; 00326 if(lw<0.0)lw = 0.0; 00327 if(le<0.0)le = 0.0; 00328 //Float_t ae = exp(+(fClearE)/10.)/( 0.666*exp(-(le+fWlsE)/7.05)+ 0.333*exp(-(le+fWlsE)/1.05)); 00329 //Float_t aw = exp(+(fClearW)/10.)/( 0.666*exp(-(lw+fWlsW)/7.05)+ 0.333*exp(-(lw+fWlsW)/1.05)); 00330 00331 Float_t ae = this->AttCorWLS(le+fWlsE)*this->AttCorClear(fClearE); 00332 Float_t aw = this->AttCorWLS(lw+fWlsW)*this->AttCorClear(fClearW); 00333 Float_t ae2 = ae*ae; 00334 Float_t aw2 = aw*aw; 00335 fQAttCorE = ae*fQEc; 00336 fQAttCorW = aw*fQWc; 00337 00338 Float_t sl1 = 0.5/6.6*(fQEc*this->AttCorWLS(le)+fQWc*this->AttCorWLS(lw)); 00339 Float_t d1 = fQAttCorE - fQAttCorW; 00340 Float_t sd1 = sqrt(fQEc*ae2 + fQWc*aw2 + sl1*sl1 + fQEc*fQEc*ae2/50. + fQWc*fQWc*aw2/50.); 00341 sd1 = d1/sd1; 00342 fDQ = sd1; 00343 fDQIsSet = true; 00344 return sd1; 00345 00346 } |
|
Definition at line 296 of file AltDeMuxCalc.cxx. References CalcDt(), fDt, fDt2Dstrip, fDtIsSet, fNumberOfStrips, fStripAim, and fView. Referenced by AltDeMuxModule::Ana(), AlgAltDeMuxBase::DeMuxHits(), AlgAltDeMuxBase::MakeTimingMask(), AlgAltDeMuxBase::ReMakeTimingMask(), and AltDeMuxModule::SelectCleanMuons().
00297 { 00298 00299 double stripAim=0.0; 00300 if(!fDtIsSet)this->CalcDt(); 00301 00302 if(fView==PlaneView::kU){ 00303 stripAim = fNumberOfStrips/2.0+fDt*fDt2Dstrip; 00304 } 00305 if(fView==PlaneView::kV){ 00306 stripAim = fNumberOfStrips/2.0-fDt*fDt2Dstrip; 00307 } 00308 00309 if(stripAim<0.)fStripAim=0; 00310 if(stripAim>=fNumberOfStrips)fStripAim=fNumberOfStrips-1; 00311 if(stripAim>=0.&&stripAim<fNumberOfStrips)fStripAim = static_cast<Int_t>(stripAim); 00312 00313 return fStripAim; 00314 00315 } |
|
Definition at line 450 of file AltDeMuxCalc.cxx. Referenced by CalcBestEast(), CalcBestWest(), CalcEast(), and CalcWest().
00450 { 00451 00452 // Time walk correction based on DATA parameterisation 00453 // from Andy Blake (new fit using form suggested by Roy Lee) 00454 00455 Float_t logQ = log(adc/2.3); 00456 Float_t logQ2 = logQ*logQ; 00457 Float_t logQ3 = logQ2*logQ; 00458 Float_t timeW = 5.7 - 0.76*logQ-0.038*logQ2+0.00541*logQ3; 00459 return timeW/0.3; 00460 00461 } |
|
Definition at line 77 of file AltDeMuxCalc.h. Referenced by GetAbsTime(), and SetAbsTime(). |
|
Definition at line 117 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), and AttCorClear(). |
|
Definition at line 116 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), and AttCorWLS(). |
|
Definition at line 91 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcDt(), CalcEast(), GetClearE(), and SigmaDQ(). |
|
Definition at line 102 of file AltDeMuxCalc.h. Referenced by CalcDt(), and SetClearFibreC(). |
|
Definition at line 113 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), CalcBestEast(), CalcEast(), and SetFibreLengthE(). |
|
Definition at line 114 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), CalcBestWest(), CalcWest(), and SetFibreLengthW(). |
|
Definition at line 92 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcDt(), CalcWest(), GetClearW(), and SigmaDQ(). |
|
Definition at line 98 of file AltDeMuxCalc.h. Referenced by SigmaDQ(). |
|
Definition at line 81 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcBestWest(), CalcEast(), CalcWest(), and SigmaDQ(). |
|
Definition at line 97 of file AltDeMuxCalc.h. Referenced by CalcDt(), DT(), SigmaDQ(), and StripAim(). |
|
Definition at line 105 of file AltDeMuxCalc.h. Referenced by SetScintillatorC(), and StripAim(). |
|
Definition at line 80 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcBestWest(), CalcDt(), CalcEast(), CalcWest(), SigmaDQ(), and StripAim(). |
|
Definition at line 78 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcDt(), CalcEast(), SetEast(), and SetEastToStrip(). |
|
Definition at line 107 of file AltDeMuxCalc.h. Referenced by SetNumberOfStrips(), and StripAim(). |
|
Definition at line 73 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcBestWest(), CalcEast(), CalcWest(), and SetPlane(). |
|
Definition at line 89 of file AltDeMuxCalc.h. Referenced by QAttCorE(), and SigmaDQ(). |
|
Definition at line 90 of file AltDeMuxCalc.h. Referenced by QAttCorW(), and SigmaDQ(). |
|
Definition at line 85 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcEast(), and QRawE(). |
|
Definition at line 87 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcEast(), PairQCor(), QSigCorE(), and SigmaDQ(). |
|
Definition at line 100 of file AltDeMuxCalc.h. |
|
Definition at line 86 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcWest(), and QRawW(). |
|
Definition at line 88 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcWest(), PairQCor(), QSigCorW(), and SigmaDQ(). |
|
Definition at line 101 of file AltDeMuxCalc.h. |
|
Definition at line 104 of file AltDeMuxCalc.h. Referenced by SetScintillatorC(). |
|
Definition at line 99 of file AltDeMuxCalc.h. Referenced by StripAim(). |
|
Definition at line 83 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcEast(), SetEast(), and SetEastToStrip(). |
|
Definition at line 84 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcWest(), SetWest(), and SetWestToStrip(). |
|
Definition at line 95 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcDt(), CalcEast(), and GetTE(). |
|
Definition at line 96 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcDt(), CalcWest(), and GetTW(). |
|
Definition at line 74 of file AltDeMuxCalc.h. Referenced by SetView(), and StripAim(). |
|
Definition at line 79 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcDt(), CalcWest(), SetWest(), and SetWestToStrip(). |
|
Definition at line 93 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcDt(), CalcEast(), GetWlsE(), and SigmaDQ(). |
|
Definition at line 103 of file AltDeMuxCalc.h. Referenced by CalcDt(), and SetWLSFibreC(). |
|
Definition at line 111 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), CalcBestEast(), CalcEast(), and SetFibreLengthE(). |
|
Definition at line 112 of file AltDeMuxCalc.h. Referenced by AltDeMuxCalc(), CalcBestWest(), CalcWest(), and SetFibreLengthW(). |
|
Definition at line 94 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcDt(), CalcWest(), GetWlsW(), and SigmaDQ(). |
|
Definition at line 75 of file AltDeMuxCalc.h. Referenced by CalcBestEast(), CalcEast(), SetEast(), and SetEastToStrip(). |
|
Definition at line 76 of file AltDeMuxCalc.h. Referenced by CalcBestWest(), CalcWest(), SetWest(), and SetWestToStrip(). |
|
Definition at line 72 of file AltDeMuxCalc.h. Referenced by SetFibreLengthE(), SetFibreLengthW(), and SetUgli(). |