#include <CalRecLogsAlg.h>
Public Methods | |
CalRecLogsAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
virtual | ~CalRecLogsAlg () |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Protected Methods | |
StatusCode | retrieve () |
Private Methods | |
void | computeEnergy (CalRecLog *recLog, const CalADCLog *adcLog, const CalADCLog *pedLog, const CalCalibLog *calibLog) |
void | computePosition (CalRecLog *recLog, const CalDetGeo *geoLog, const CalCalibLog *calibLog) |
Private Attributes | |
ICalGeometrySvc * | m_CalGeo |
CalPedCalib * | m_CalPedLogs |
CalCalibLogs * | m_CalCalibLogs |
CalADCLogs * | m_CalRawLogs |
CalRecLogs * | m_CalRecLogs |
std::string | m_PedFileName |
std::string | m_GainFileName |
std::string | m_IntlinFileName |
std::string | m_RailFileName |
std::string | m_SlopeFileName |
|
Definition at line 20 of file CalRecLogsAlg.cxx. References m_GainFileName, m_IntlinFileName, m_PedFileName, m_RailFileName, and m_SlopeFileName.
00020 : 00021 Algorithm(name, pSvcLocator) { 00022 declareProperty("PedFile",m_PedFileName); 00023 declareProperty("GainFile",m_GainFileName); 00024 declareProperty("IntlinFile",m_IntlinFileName); 00025 declareProperty("RailFile",m_RailFileName); 00026 declareProperty("SlopeFile",m_SlopeFileName); 00027 00028 } |
|
Definition at line 35 of file CalRecLogsAlg.h.
00035 {} |
|
Definition at line 145 of file CalRecLogsAlg.cxx. References CALNRANGES, CALNSIDES, CalBase::HE, CalBase::HEX, CalBase::LE, CalBase::LEX, CalBase::NEG, CalBase::POS, CalBase::RANGE, and CalBase::SIDE.
00148 { 00149 00150 double MAXPED = 4095.; 00151 double ADCSATURATION = 3850; 00152 bool eneSet = false; 00153 for (int irange = 0; irange < CALNRANGES ; irange++) { 00154 CalBase::RANGE r = (irange == 0? CalBase::LEX : CalBase::LE); 00155 double eneNeg = 0.; 00156 double enePos = 0.; 00157 double adcNeg = 0.; 00158 double adcPos = 0.; 00159 double adcSatNeg = 0.; 00160 double adcSatPos = 0.; 00161 for (int iside = 0; iside < CALNSIDES; iside++) { 00162 CalBase::SIDE s = (iside == 0? CalBase::NEG : CalBase::POS); 00163 if (irange > 1) r = (irange == 2? CalBase::HEX : CalBase::HE); 00164 double adc = ADCLog->ADC(s,r); 00165 double ped = pedLog->ADC(s,r); 00166 double adc_ped = adc - ped; 00167 //if (s== CalBase::NEG) recLog->setNegADC(r,(adc-ped)/(MAXPED-ped)); 00168 //else recLog->setPosADC(r,(adc-ped)/(MAXPED-ped)); 00169 if (s== CalBase::NEG) recLog->setNegADC(r,adc_ped); 00170 else recLog->setPosADC(r,adc_ped); 00171 00172 double adcSat = 0.6*(calibLog->getRail(iside,irange)); 00173 double ene = calibLog->adc_to_MeV(adc_ped,iside,irange); 00174 iside == 0? eneNeg = ene: enePos = ene; 00175 iside == 0? adcNeg = adc_ped: adcPos = adc_ped; 00176 iside == 0? adcSatNeg = adcSat: adcSatPos = adcSat; 00177 } 00178 recLog->setNegEnergy(r,eneNeg); 00179 recLog->setPosEnergy(r,enePos); 00180 if(adcNeg<50 || adcPos<50)eneNeg=enePos=0; 00181 00182 if (!eneSet && (adcNeg < adcSatNeg && adcPos < adcSatPos)) { 00183 eneSet = true; 00184 recLog->setNegEnergy(eneNeg); 00185 recLog->setPosEnergy(enePos); 00186 recLog->setBestRange(r); 00187 } 00188 } 00189 } |
|
Definition at line 191 of file CalRecLogsAlg.cxx. References CalAxis::axis, slope, CalAxis::X, and CalAxis::Y.
00194 { 00195 Point pCenter = geoLog->position(); 00196 Point pSize = geoLog->size(); 00197 00198 CalDetGeo::axis view = recLog->view(); 00199 double xdir = 0.; 00200 double ydir = 0.; 00201 ydir = (view == CalDetGeo::X? 1. : 0); 00202 xdir = (view == CalDetGeo::Y? 1. : 0); 00203 00204 Vector dirLog(xdir,ydir,0.); 00205 00206 00207 double eneNeg = recLog->negEnergy(); 00208 double enePos = recLog->posEnergy(); 00209 double asym = recLog->asymmetry(); 00210 double slope = calibLog->getSlope(recLog->bestRange()); 00211 00212 Point pLog = pCenter+dirLog*asym*slope; 00213 00214 recLog->setPosition(pLog); 00215 } |
|
Definition at line 69 of file CalRecLogsAlg.cxx. References CalAxis::axis, CalLogID::column(), CalLogID::ID(), CalLogID::layer(), and CalLogID::view().
00071 { 00072 StatusCode sc = StatusCode::SUCCESS; 00073 sc = retrieve(); 00074 int nLogs = m_CalRawLogs->num(); 00075 for (int jlog = 0; jlog < nLogs ; jlog++) { 00076 00077 CalADCLog* ADCLog = m_CalRawLogs->Log(jlog); 00078 00079 int ilayer = ADCLog->layer(); 00080 CalDetGeo::axis view = ADCLog->view(); 00081 int icol = ADCLog->column(); 00082 00083 // detGeo* geoLog = m_CalGeoLogs->getLog(ilayer,view,icol); 00084 CalDetGeo geoLog = m_CalGeo->getLog(ilayer,view,icol); 00085 00086 00087 CalADCLog* pedLog = m_CalPedLogs->getLogID(CalLogID::ID(ilayer,view,icol)); 00088 CalCalibLog* calibLog = m_CalCalibLogs->getLogID(CalLogID::ID(ilayer,view,icol)); 00089 00090 CalRecLog* recLog = m_CalRecLogs->getLogID(CalLogID::ID(ilayer,view,icol)); 00091 computeEnergy(recLog, ADCLog, pedLog, calibLog); 00092 computePosition(recLog,&geoLog, calibLog); 00093 // std::cout << " ilayer = " << ilayer << " view=" << view << " icol=" << icol << std::endl; 00094 } 00095 // m_CalRecLogs->writeOut(); 00096 00097 return sc; 00098 } |
|
Definition at line 100 of file CalRecLogsAlg.cxx.
00102 { 00103 StatusCode sc = StatusCode::SUCCESS; 00104 00105 // m_CalRecLogs->writeOut(); 00106 00107 return sc; 00108 } |
|
Definition at line 32 of file CalRecLogsAlg.cxx.
00034 { 00035 MsgStream log(msgSvc(), name()); 00036 StatusCode sc = StatusCode::SUCCESS; 00037 /* 00038 m_CalPedLogs = dataManager::instance()->getData("CalPedCalib",m_CalPedLogs); 00039 m_CalCalibLogs = dataManager::instance()->getData("CalCalibLogs",m_CalCalibLogs); 00040 m_CalGeoLogs = dataManager::instance()->geo()->cal(); 00041 00042 m_CalRawLogs = dataManager::instance()->getData("CalRawLogs",m_CalRawLogs); 00043 m_CalRecLogs = dataManager::instance()->getData("CalRecLogs",m_CalRecLogs); 00044 */ 00045 sc = service("CalGeometrySvc", m_CalGeo); 00046 00047 if(sc.isFailure()) 00048 { 00049 log <<MSG::ERROR << "Error ICalGeometrySvc not found" << endreq; 00050 return sc; 00051 } 00052 00053 00054 00055 m_CalPedLogs = new CalPedCalib(); 00056 m_CalPedLogs->setFileName(m_PedFileName); 00057 m_CalPedLogs->make(); 00058 00059 m_CalCalibLogs = new CalCalibLogs(); 00060 m_CalCalibLogs->setFileNames(m_IntlinFileName, m_GainFileName, m_RailFileName, m_SlopeFileName); 00061 m_CalCalibLogs->make(); 00062 00063 00064 // m_CalRecLogs->clear(); 00065 00066 return sc; 00067 } |
|
Definition at line 111 of file CalRecLogsAlg.cxx.
00113 { 00114 00115 MsgStream log(msgSvc(), name()); 00116 StatusCode sc = StatusCode::SUCCESS; 00117 00118 m_CalRecLogs = 0; 00119 m_CalRecLogs = new CalRecLogs(); 00120 00121 DataObject* pnode=0; 00122 00123 sc = eventSvc()->retrieveObject( "/Event/CalRecon", pnode ); 00124 00125 if( sc.isFailure() ) { 00126 sc = eventSvc()->registerObject("/Event/CalRecon",new DataObject); 00127 if( sc.isFailure() ) { 00128 00129 log << MSG::ERROR << "Could not create CalRecon directory" << endreq; 00130 return sc; 00131 } 00132 } 00133 00134 00135 00136 m_CalRawLogs = SmartDataPtr<CalADCLogs>(eventSvc(),"/Event/CalRecon/CalADCLogs"); 00137 00138 00139 sc = eventSvc()->registerObject("/Event/CalRecon/CalRecLogs",m_CalRecLogs); 00140 return sc; 00141 } |
|
Definition at line 55 of file CalRecLogsAlg.h. |
|
Definition at line 53 of file CalRecLogsAlg.h. |
|
Definition at line 54 of file CalRecLogsAlg.h. |
|
Definition at line 56 of file CalRecLogsAlg.h. |
|
Definition at line 58 of file CalRecLogsAlg.h. |
|
Definition at line 61 of file CalRecLogsAlg.h. Referenced by CalRecLogsAlg(). |
|
Definition at line 62 of file CalRecLogsAlg.h. Referenced by CalRecLogsAlg(). |
|
Definition at line 60 of file CalRecLogsAlg.h. Referenced by CalRecLogsAlg(). |
|
Definition at line 63 of file CalRecLogsAlg.h. Referenced by CalRecLogsAlg(). |
|
Definition at line 64 of file CalRecLogsAlg.h. Referenced by CalRecLogsAlg(). |