#include <EmcRec.h>
Public Member Functions | |
EmcRec (const std::string &name, ISvcLocator *pSvcLocator) | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Private Attributes | |
EmcRecDigit2Hit | fDigit2Hit |
EmcRecHit2Cluster | fHit2Cluster |
EmcRecCluster2ShowerAbs * | fCluster2Shower |
RecEmcDigitMap | fDigitMap |
RecEmcHitMap | fHitMap |
RecEmcClusterMap | fClusterMap |
RecEmcShowerMap | fShowerMap |
IRawDataProviderSvc * | m_rawDataProviderSvc |
PropertyMgr | m_propMgr |
int | m_event |
int | fOutput |
int | fEventNb |
bool | fDigiCalib |
bool | fTofEnergy |
bool | fOnlineMode |
double | fTimeMin |
double | fTimeMax |
double | fMethodMode |
double | fPosCorr |
int | fElecSaturation |
std::vector< std::string > | fPositionMode |
NTuple::Tuple * | m_tuple |
NTuple::Item< long > | pid |
NTuple::Item< float > | tp |
NTuple::Item< float > | ttheta |
NTuple::Item< float > | tphi |
NTuple::Item< long > | nrun |
NTuple::Item< long > | nrec |
NTuple::Item< long > | nneu |
NTuple::Item< long > | npart |
NTuple::Item< long > | ntheta |
NTuple::Item< long > | nphi |
NTuple::Item< long > | ndigi |
NTuple::Item< long > | nhit |
NTuple::Item< long > | ncluster |
NTuple::Array< float > | pp1 |
NTuple::Item< float > | theta1 |
NTuple::Item< float > | phi1 |
NTuple::Item< float > | dphi1 |
NTuple::Item< float > | eseed |
NTuple::Item< float > | e3x3 |
NTuple::Item< float > | e5x5 |
NTuple::Item< float > | enseed |
NTuple::Item< float > | etof2x1 |
NTuple::Item< float > | etof2x3 |
NTuple::Item< float > | cluster2ndMoment |
NTuple::Item< float > | secondMoment |
NTuple::Item< float > | latMoment |
NTuple::Item< float > | a20Moment |
NTuple::Item< float > | a42Moment |
NTuple::Item< float > | mpi0 |
NTuple::Item< long > | thtgap1 |
NTuple::Item< long > | phigap1 |
NTuple::Array< float > | pp2 |
Definition at line 22 of file EmcRec.h.
EmcRec::EmcRec | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 37 of file EmcRec.cxx.
References fDigiCalib, fElecSaturation, fEventNb, fMethodMode, fOnlineMode, fOutput, fPosCorr, fPositionMode, fTimeMax, fTimeMin, fTofEnergy, EmcRecParameter::GetInstance(), EmcRecParameter::lock(), m_event, m_propMgr, EmcRecParameter::SetDigiCalib(), EmcRecParameter::SetElecSaturation(), EmcRecParameter::SetMethodMode(), EmcRecParameter::SetPosCorr(), EmcRecParameter::SetPositionMode(), EmcRecParameter::SetTimeMax(), EmcRecParameter::SetTimeMin(), and EmcRecParameter::unlock().
00037 : 00038 Algorithm(name, pSvcLocator),fCluster2Shower(0) 00039 { 00040 m_event=0; 00041 fPositionMode.push_back("log"); 00042 fPositionMode.push_back("5x5"); 00043 // Declare the properties 00044 m_propMgr.declareProperty("Output",fOutput=0); 00045 m_propMgr.declareProperty("EventNb",fEventNb=0); 00046 m_propMgr.declareProperty("DigiCalib",fDigiCalib=false); 00047 m_propMgr.declareProperty("TofEnergy",fTofEnergy=false); 00048 m_propMgr.declareProperty("OnlineMode",fOnlineMode=false); 00049 m_propMgr.declareProperty("TimeMin",fTimeMin=0); 00050 m_propMgr.declareProperty("TimeMax",fTimeMax=60); 00051 m_propMgr.declareProperty("PositionMode",fPositionMode); 00052 00053 //Method == 0 use old correction parameter 00054 //Method == 1 use new correction parameter 00055 m_propMgr.declareProperty("MethodMode",fMethodMode=0); 00056 //PosCorr=0, no position correction, and PosCorr=1 with position correction 00057 m_propMgr.declareProperty("PosCorr",fPosCorr=1); 00058 m_propMgr.declareProperty("ElecSaturation",fElecSaturation=1); 00059 00060 IJobOptionsSvc* jobSvc; 00061 pSvcLocator->service("JobOptionsSvc", jobSvc); 00062 jobSvc->setMyProperties("EmcRecAlg", &m_propMgr); 00063 00064 // Get EmcRecParameter 00065 EmcRecParameter::lock(); 00066 EmcRecParameter& Para=EmcRecParameter::GetInstance(); 00067 Para.SetDigiCalib(fDigiCalib); 00068 Para.SetTimeMin(fTimeMin); 00069 Para.SetTimeMax(fTimeMax); 00070 Para.SetMethodMode(fMethodMode); 00071 Para.SetPosCorr(fPosCorr); 00072 Para.SetPositionMode(fPositionMode); 00073 Para.SetElecSaturation(fElecSaturation); 00074 00075 EmcRecParameter::unlock(); 00076 00077 }
StatusCode EmcRec::execute | ( | ) |
Definition at line 157 of file EmcRec.cxx.
References DstEmcShower::a20Moment(), a20Moment, DstEmcShower::a42Moment(), a42Moment, RecEmcDigit::Assign(), EmcID::barrel_ec(), cluster2ndMoment, EmcRecCluster2ShowerAbs::Convert(), EmcRecHit2Cluster::Convert(), EmcRecDigit2Hit::Convert(), cos(), EmcID::crystal_id(), Bes_Common::DEBUG, dphi1, DstEmcShower::e3x3(), e3x3, DstEmcShower::e5x5(), e5x5, RawDataUtil::EmcCharge(), RawDataUtil::EmcTime(), DstEmcShower::energy(), enseed, DstEmcShower::eSeed(), eseed, etof2x1, etof2x3, Bes_Common::FATAL, fCluster2Shower, fClusterMap, fDigit2Hit, fDigitMap, fEventNb, fHit2Cluster, fHitMap, fOutput, fShowerMap, RecEmcShower::getCluster(), RecEmcShower::getETof2x1(), RecEmcShower::getETof2x3(), IEmcCalibConstSvc::getIndex(), EmcRecParameter::GetInstance(), IEmcCalibConstSvc::getIxtalNumber(), IEmcCalibConstSvc::getPartID(), IEmcCalibConstSvc::getPhiIndex(), RecEmcCluster::getSecondMoment(), RecEmcShower::getShowerId(), IEmcCalibConstSvc::getThetaIndex(), Bes_Common::INFO, Identifier::is_valid(), IRawDataProviderSvc::isOnlineMode(), DstEmcShower::latMoment(), latMoment, m_event, m_rawDataProviderSvc, m_tuple, mpi0, msgSvc(), ncluster, ndigi, RecEmcShower::NearestSeed(), nhit, nneu, npart, nphi, nrec, nrun, ntheta, EmcRecDigit2Hit::Output(), phi1, EmcID::phi_module(), RecEmcShower::PhiGap(), phigap1, pi, DstEmcShower::position(), pp1, pp2, DstEmcShower::secondMoment(), secondMoment, EmcRecParameter::SetDataMode(), theta1, EmcID::theta_module(), RecEmcShower::ThetaGap(), thtgap1, tp, tphi, ttheta, Bes_Common::WARNING, DstEmcShower::x(), DstEmcShower::y(), and DstEmcShower::z().
00157 { 00158 00159 MsgStream log(msgSvc(), name()); 00160 log << MSG::DEBUG << "in execute()" << endreq; 00163 int event, run; 00164 00165 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader"); 00166 if (!eventHeader) { 00167 log << MSG::FATAL <<name() << " Could not find Event Header" << endreq; 00168 return( StatusCode::FAILURE); 00169 } 00170 run=eventHeader->runNumber(); 00171 event=eventHeader->eventNumber(); 00172 EmcRecParameter& Para=EmcRecParameter::GetInstance(); 00173 00174 if(run>0) Para.SetDataMode(1); 00175 else Para.SetDataMode(0); 00176 00177 00178 if(fEventNb!=0&&m_event%fEventNb==0) { 00179 log << MSG::FATAL <<m_event<<"-------: "<<run<<","<<event<<endreq; 00180 } 00181 m_event++; 00182 if(fOutput>=2) { 00183 log << MSG::DEBUG <<"===================================="<<endreq; 00184 log << MSG::DEBUG <<"run= "<<run<<"; event= "<<event<<endreq; 00185 } 00186 00187 Hep3Vector posG; //initial photon position 00188 #ifndef OnlineMode 00189 if(!(m_rawDataProviderSvc->isOnlineMode())) { 00190 if(fOutput>=1&&run<0) { //run<0 means MC 00191 // Retrieve mc truth 00192 SmartDataPtr<McParticleCol> mcParticleCol(eventSvc(),"/Event/MC/McParticleCol"); 00193 if (!mcParticleCol) { 00194 log << MSG::WARNING << "Could not find McParticle" << endreq; 00195 } else { 00196 HepLorentzVector pG; 00197 McParticleCol::iterator iter_mc = mcParticleCol->begin(); 00198 for (;iter_mc != mcParticleCol->end(); iter_mc++) { 00199 log << MSG::INFO 00200 << " particleId = " << (*iter_mc)->particleProperty() 00201 << endreq; 00202 pG = (*iter_mc)->initialFourMomentum(); 00203 posG = (*iter_mc)->initialPosition().v(); 00204 } 00205 ttheta = pG.theta(); 00206 tphi = pG.phi(); 00207 if(tphi<0) { 00208 tphi=twopi+tphi; 00209 } 00210 tp = pG.rho(); 00211 00212 // Retrieve EMC truth 00213 SmartDataPtr<EmcMcHitCol> emcMcHitCol(eventSvc(),"/Event/MC/EmcMcHitCol"); 00214 if (!emcMcHitCol) { 00215 log << MSG::WARNING << "Could not find EMC truth" << endreq; 00216 } 00217 00218 RecEmcID mcId; 00219 unsigned int mcTrackIndex; 00220 double mcPosX=0,mcPosY=0,mcPosZ=0; 00221 double mcPx=0,mcPy=0,mcPz=0; 00222 double mcEnergy=0; 00223 00224 EmcMcHitCol::iterator iterMc; 00225 for(iterMc=emcMcHitCol->begin();iterMc!=emcMcHitCol->end();iterMc++){ 00226 mcId=(*iterMc)->identify(); 00227 mcTrackIndex=(*iterMc)->getTrackIndex(); 00228 mcPosX=(*iterMc)->getPositionX(); 00229 mcPosY=(*iterMc)->getPositionY(); 00230 mcPosZ=(*iterMc)->getPositionZ(); 00231 mcPx=(*iterMc)->getPx(); 00232 mcPy=(*iterMc)->getPy(); 00233 mcPz=(*iterMc)->getPz(); 00234 mcEnergy=(*iterMc)->getDepositEnergy(); 00235 00236 if(fOutput>=2){ 00237 //cout<<"mcId="<<mcId<<"\t"<<"mcTrackIndex="<<mcTrackIndex<<endl; 00238 //cout<<"mcPosition:\t"<<mcPosX<<"\t"<<mcPosY<<"\t"<<mcPosZ<<endl; 00239 //cout<<"mcP:\t"<<mcPx<<"\t"<<mcPy<<"\t"<<mcPz<<endl; 00240 //cout<<"mcDepositEnergy=\t"<<mcEnergy<<endl; 00241 } 00242 } 00243 } 00244 } //fOutput>=1 00245 } //isOnlineMode 00246 00247 #endif 00248 //cout<<"EmcRec1--1"<<endl; 00250 fDigitMap.clear(); 00251 fHitMap.clear(); 00252 fClusterMap.clear(); 00253 fShowerMap.clear(); 00254 00255 // Get EmcCalibConstSvc. 00256 IEmcCalibConstSvc *emcCalibConstSvc = 0; 00257 StatusCode sc = service("EmcCalibConstSvc", emcCalibConstSvc); 00258 if(sc != StatusCode::SUCCESS) { 00259 ; 00260 //cout << "EmcRec Error: Can't get EmcCalibConstSvc." << endl; 00261 } 00262 00263 SmartDataPtr<EmcDigiCol> emcDigiCol(eventSvc(),"/Event/Digi/EmcDigiCol"); 00264 if (!emcDigiCol) { 00265 log << MSG::FATAL << "Could not find EMC digi" << endreq; 00266 return( StatusCode::FAILURE); 00267 } 00268 //cout<<"EmcRec1--2"<<endl; 00269 EmcDigiCol::iterator iter3; 00270 for (iter3=emcDigiCol->begin();iter3!= emcDigiCol->end();iter3++) { 00271 RecEmcID id((*iter3)->identify()); 00272 double adc=RawDataUtil::EmcCharge((*iter3)->getMeasure(), 00273 (*iter3)->getChargeChannel()); 00274 double tdc=RawDataUtil::EmcTime((*iter3)->getTimeChannel()); 00275 00276 //for cable connection correction 00277 unsigned int nnpart=EmcID::barrel_ec(id); 00278 unsigned int nnthe=EmcID::theta_module(id); 00279 unsigned int nnphi=EmcID::phi_module(id); 00280 00281 int index = emcCalibConstSvc->getIndex(nnpart,nnthe,nnphi); 00282 int ixtalNumber=emcCalibConstSvc->getIxtalNumber(index); 00283 00284 00285 if(run>0&&ixtalNumber>0) { 00286 unsigned int npartNew=emcCalibConstSvc->getPartID(ixtalNumber); 00287 unsigned int ntheNew=emcCalibConstSvc->getThetaIndex(ixtalNumber); 00288 unsigned int nphiNew=emcCalibConstSvc->getPhiIndex(ixtalNumber); 00289 id=EmcID::crystal_id(npartNew,ntheNew,nphiNew); 00290 }//------- 00291 00292 //ixtalNumber=-9 tag dead channel 00293 if (ixtalNumber==-9) { 00294 adc=0.0; 00295 } 00296 00297 //ixtalNumber=-99 tag hot channel 00298 if (ixtalNumber==-99) { 00299 adc=0.0; 00300 } 00301 00302 RecEmcDigit aDigit; 00303 aDigit.Assign(id,adc,tdc); 00304 fDigitMap[id]=aDigit; 00305 } 00306 //cout<<"EmcRec1--3"<<endl; 00307 if(fOutput>=2) { 00308 RecEmcDigitMap::iterator iDigitMap; 00309 for(iDigitMap=fDigitMap.begin(); 00310 iDigitMap!=fDigitMap.end(); 00311 iDigitMap++){ 00312 //cout<<iDigitMap->second; 00313 } 00314 } 00315 // DigitMap ok 00316 00317 // oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 00319 fDigit2Hit.Convert(fDigitMap,fHitMap); 00320 if(fOutput>=2) { 00321 RecEmcHitMap::iterator iHitMap; 00322 for(iHitMap=fHitMap.begin(); 00323 iHitMap!=fHitMap.end(); 00324 iHitMap++){ 00325 //cout<<iHitMap->second; 00326 } 00327 fDigit2Hit.Output(fHitMap); 00328 } 00329 //cout<<"EmcRec1--4"<<endl; 00330 00332 fHit2Cluster.Convert(fHitMap,fClusterMap); 00333 // 00334 if(fOutput>=2) { 00335 RecEmcClusterMap::iterator iClusterMap; 00336 for(iClusterMap=fClusterMap.begin(); 00337 iClusterMap!=fClusterMap.end(); 00338 iClusterMap++){ 00339 //cout<<iClusterMap->second; 00340 } 00341 } 00342 //cout<<"EmcRec1--5"<<endl; 00344 fCluster2Shower->Convert(fClusterMap,fShowerMap); 00345 // 00346 if(fOutput>=2) { 00347 RecEmcShowerMap::iterator iShowerMap; 00348 for(iShowerMap=fShowerMap.begin(); 00349 iShowerMap!=fShowerMap.end(); 00350 iShowerMap++) { 00351 //cout<<iShowerMap->second; 00352 } 00353 } 00354 //cout<<"EmcRec1--6"<<endl; 00355 00357 EmcRecTDS tds; 00358 tds.RegisterToTDS(fHitMap,fClusterMap,fShowerMap); 00359 if(fOutput>=2) { 00360 tds.CheckRegister(); 00361 } 00362 //cout<<"EmcRec1--7"<<endl; 00363 // oooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 00364 #ifndef OnlineMode 00365 if(!(m_rawDataProviderSvc->isOnlineMode())) { 00366 if(fOutput>=1) { 00367 nrun=run; 00368 nrec=event; 00369 00370 //cout<<"cm="<<cm<<"\tmm="<<mm<<"\tGeV="<<GeV<<"\tMeV="<<MeV<<endl; 00371 ndigi=fDigitMap.size(); 00372 nhit=fHitMap.size(); 00373 ncluster=fClusterMap.size(); 00374 RecEmcShowerVec fShowerVec; 00375 RecEmcShowerMap::iterator iShowerMap; 00376 for(iShowerMap=fShowerMap.begin(); 00377 iShowerMap!=fShowerMap.end(); 00378 iShowerMap++) { 00379 fShowerVec.push_back(iShowerMap->second); 00380 } 00381 sort(fShowerVec.begin(), fShowerVec.end(), greater<RecEmcShower>()); 00382 nneu=fShowerMap.size(); 00383 00384 RecEmcShower aShower; 00385 //aShower.e5x5(-99.); 00386 RecEmcShowerVec::iterator iShowerVec; 00387 iShowerVec=fShowerVec.begin(); 00388 npart=-99; 00389 ntheta=-99; 00390 nphi=-99; 00391 if(iShowerVec!=fShowerVec.end()) { 00392 aShower=*iShowerVec; 00393 RecEmcID id=aShower.getShowerId(); 00394 npart=EmcID::barrel_ec(id); 00395 ntheta=EmcID::theta_module(id); 00396 nphi=EmcID::phi_module(id); 00397 pp1[0]=aShower.energy()*aShower.x()/aShower.position().mag(); 00398 pp1[1]=aShower.energy()*aShower.y()/aShower.position().mag(); 00399 pp1[2]=aShower.energy()*aShower.z()/aShower.position().mag(); 00400 pp1[3]=aShower.energy(); 00401 theta1=(aShower.position()-posG).theta(); 00402 phi1=(aShower.position()-posG).phi(); 00403 if(phi1<0) { 00404 phi1=twopi+phi1; 00405 } 00406 thtgap1=aShower.ThetaGap(); 00407 phigap1=aShower.PhiGap(); 00408 RecEmcID seed,nseed; 00409 seed=aShower.getShowerId(); 00410 nseed=aShower.NearestSeed(); 00411 eseed=aShower.eSeed(); 00412 e3x3=aShower.e3x3(); 00413 e5x5=aShower.e5x5(); 00414 etof2x1=aShower.getETof2x1(); 00415 etof2x3=aShower.getETof2x3(); 00416 if(aShower.getCluster()) { 00417 cluster2ndMoment=aShower.getCluster()->getSecondMoment(); 00418 } 00419 secondMoment=aShower.secondMoment(); 00420 latMoment=aShower.latMoment(); 00421 a20Moment=aShower.a20Moment(); 00422 a42Moment=aShower.a42Moment(); 00423 if(nseed.is_valid()) { 00424 enseed=fHitMap[nseed].getEnergy(); 00425 } else { 00426 enseed=0; 00427 } 00428 00429 dphi1=phi1-tphi; 00430 if(dphi1<-pi) dphi1=dphi1+twopi; 00431 if(dphi1>pi) dphi1=dphi1-twopi; 00432 } 00433 00434 if(iShowerVec!=fShowerVec.end()) { 00435 iShowerVec++; 00436 if(iShowerVec!=fShowerVec.end()) { 00437 aShower=*iShowerVec; 00438 pp2[0]=aShower.energy()*aShower.x()/aShower.position().mag(); 00439 pp2[1]=aShower.energy()*aShower.y()/aShower.position().mag(); 00440 pp2[2]=aShower.energy()*aShower.z()/aShower.position().mag(); 00441 pp2[3]=aShower.energy(); 00442 } 00443 } 00444 00445 //for pi0 00446 if(fShowerVec.size()>=2) { 00447 RecEmcShowerVec::iterator iShowerVec1,iShowerVec2; 00448 iShowerVec1=fShowerVec.begin(); 00449 iShowerVec2=fShowerVec.begin()+1; 00450 double e1=(*iShowerVec1).energy(); 00451 double e2=(*iShowerVec2).energy(); 00452 double angle=(*iShowerVec1).position().angle((*iShowerVec2).position()); 00453 mpi0=sqrt(2*e1*e2*(1-cos(angle))); 00454 } 00455 m_tuple->write(); 00456 } 00457 } 00458 #endif 00459 00460 return StatusCode::SUCCESS; 00461 }
StatusCode EmcRec::finalize | ( | ) |
Definition at line 464 of file EmcRec.cxx.
References fCluster2Shower, Bes_Common::INFO, EmcRecParameter::Kill(), and msgSvc().
00464 { 00465 EmcRecParameter::Kill(); 00466 if(fCluster2Shower) delete fCluster2Shower; 00467 00468 MsgStream log(msgSvc(), name()); 00469 log << MSG::INFO << "in finalize()" << endreq; 00470 return StatusCode::SUCCESS; 00471 }
StatusCode EmcRec::initialize | ( | ) |
Definition at line 80 of file EmcRec.cxx.
References a20Moment, a42Moment, cluster2ndMoment, dphi1, e3x3, e5x5, enseed, calibUtil::ERROR, eseed, etof2x1, etof2x3, fCluster2Shower, fDigit2Hit, fOutput, Bes_Common::INFO, IRawDataProviderSvc::isOnlineMode(), latMoment, m_rawDataProviderSvc, m_tuple, mpi0, msgSvc(), ncluster, ndigi, nhit, nneu, npart, nphi, nrec, nrun, ntheta, ntupleSvc(), phi1, phigap1, pid, pp1, pp2, secondMoment, EmcRecDigit2Hit::SetAlgName(), deljobs::string, theta1, thtgap1, tp, tphi, and ttheta.
00080 { 00081 00082 MsgStream log(msgSvc(), name()); 00083 log << MSG::INFO << "in initialize()" << endreq; 00084 00085 //Get RawDataProviderSvc 00086 // tianhl for mt 00087 std::string rawDataProviderSvc_name("RawDataProviderSvc"); 00088 StatusCode sc = service(rawDataProviderSvc_name.c_str(), m_rawDataProviderSvc); 00089 if(sc != StatusCode::SUCCESS) { 00090 log << MSG::ERROR << "EmcRec Error: Can't get RawDataProviderSvc." << endmsg; 00091 } 00092 00093 fDigit2Hit.SetAlgName(name()); 00094 00095 #ifndef OnlineMode 00096 if(!(m_rawDataProviderSvc->isOnlineMode())) { 00097 m_tuple=0; 00098 StatusCode status; 00099 00100 if(fOutput>=1) { 00101 NTuplePtr nt(ntupleSvc(),"FILE301/n1"); 00102 if ( nt ) m_tuple = nt; 00103 else { 00104 m_tuple=ntupleSvc()->book("FILE301/n1",CLID_ColumnWiseTuple,"EmcRec"); 00105 if( m_tuple ) { 00106 status = m_tuple->addItem ("pid",pid); 00107 status = m_tuple->addItem ("tp",tp); 00108 status = m_tuple->addItem ("ttheta",ttheta); 00109 status = m_tuple->addItem ("tphi",tphi); 00110 status = m_tuple->addItem ("nrun",nrun); 00111 status = m_tuple->addItem ("nrec",nrec); 00112 status = m_tuple->addItem ("nneu",nneu); 00113 status = m_tuple->addItem ("ncluster",ncluster); 00114 status = m_tuple->addItem ("npart",npart); 00115 status = m_tuple->addItem ("ntheta",ntheta); 00116 status = m_tuple->addItem ("nphi",nphi); 00117 status = m_tuple->addItem ("ndigi",ndigi); 00118 status = m_tuple->addItem ("nhit",nhit); 00119 status = m_tuple->addItem ("pp1",4,pp1); 00120 status = m_tuple->addItem ("theta1",theta1); 00121 status = m_tuple->addItem ("phi1",phi1); 00122 status = m_tuple->addItem ("dphi1",dphi1); 00123 status = m_tuple->addItem ("eseed",eseed); 00124 status = m_tuple->addItem ("e3x3",e3x3); 00125 status = m_tuple->addItem ("e5x5",e5x5); 00126 status = m_tuple->addItem ("enseed",enseed); 00127 status = m_tuple->addItem ("etof2x1",etof2x1); 00128 status = m_tuple->addItem ("etof2x3",etof2x3); 00129 status = m_tuple->addItem ("cluster2ndMoment",cluster2ndMoment); 00130 status = m_tuple->addItem ("secondMoment",secondMoment); 00131 status = m_tuple->addItem ("latMoment",latMoment); 00132 status = m_tuple->addItem ("a20Moment",a20Moment); 00133 status = m_tuple->addItem ("a42Moment",a42Moment); 00134 status = m_tuple->addItem ("mpi0",mpi0); 00135 status = m_tuple->addItem ("thtgap1",thtgap1); 00136 status = m_tuple->addItem ("phigap1",phigap1); 00137 status = m_tuple->addItem ("pp2",4,pp2); 00138 } 00139 else { // did not manage to book the N tuple.... 00140 log << MSG::ERROR <<"Cannot book N-tuple:" << long(m_tuple) << endmsg; 00141 return StatusCode::FAILURE; 00142 } 00143 } 00144 } 00145 fCluster2Shower = new EmcRecCluster2Shower; 00146 } else { 00147 fCluster2Shower = new EmcRecFastCluster2Shower; 00148 } 00149 #else 00150 fCluster2Shower = new EmcRecFastCluster2Shower; 00151 #endif 00152 00153 return StatusCode::SUCCESS; 00154 }
NTuple::Item<float> EmcRec::a20Moment [private] |
NTuple::Item<float> EmcRec::a42Moment [private] |
NTuple::Item<float> EmcRec::cluster2ndMoment [private] |
NTuple::Item<float> EmcRec::dphi1 [private] |
NTuple::Item<float> EmcRec::e3x3 [private] |
NTuple::Item<float> EmcRec::e5x5 [private] |
NTuple::Item<float> EmcRec::enseed [private] |
NTuple::Item<float> EmcRec::eseed [private] |
NTuple::Item<float> EmcRec::etof2x1 [private] |
NTuple::Item<float> EmcRec::etof2x3 [private] |
EmcRecCluster2ShowerAbs* EmcRec::fCluster2Shower [private] |
RecEmcClusterMap EmcRec::fClusterMap [private] |
bool EmcRec::fDigiCalib [private] |
EmcRecDigit2Hit EmcRec::fDigit2Hit [private] |
RecEmcDigitMap EmcRec::fDigitMap [private] |
int EmcRec::fElecSaturation [private] |
int EmcRec::fEventNb [private] |
EmcRecHit2Cluster EmcRec::fHit2Cluster [private] |
RecEmcHitMap EmcRec::fHitMap [private] |
double EmcRec::fMethodMode [private] |
bool EmcRec::fOnlineMode [private] |
int EmcRec::fOutput [private] |
double EmcRec::fPosCorr [private] |
std::vector<std::string> EmcRec::fPositionMode [private] |
RecEmcShowerMap EmcRec::fShowerMap [private] |
double EmcRec::fTimeMax [private] |
double EmcRec::fTimeMin [private] |
bool EmcRec::fTofEnergy [private] |
NTuple::Item<float> EmcRec::latMoment [private] |
int EmcRec::m_event [private] |
PropertyMgr EmcRec::m_propMgr [private] |
IRawDataProviderSvc* EmcRec::m_rawDataProviderSvc [private] |
NTuple::Tuple* EmcRec::m_tuple [private] |
NTuple::Item<float> EmcRec::mpi0 [private] |
NTuple::Item<long> EmcRec::ncluster [private] |
NTuple::Item<long> EmcRec::ndigi [private] |
NTuple::Item<long> EmcRec::nhit [private] |
NTuple::Item<long> EmcRec::nneu [private] |
NTuple::Item<long> EmcRec::npart [private] |
NTuple::Item<long> EmcRec::nphi [private] |
NTuple::Item<long> EmcRec::nrec [private] |
NTuple::Item<long> EmcRec::nrun [private] |
NTuple::Item<long> EmcRec::ntheta [private] |
NTuple::Item<float> EmcRec::phi1 [private] |
NTuple::Item<long> EmcRec::phigap1 [private] |
NTuple::Item<long> EmcRec::pid [private] |
NTuple::Array<float> EmcRec::pp1 [private] |
NTuple::Array<float> EmcRec::pp2 [private] |
NTuple::Item<float> EmcRec::secondMoment [private] |
NTuple::Item<float> EmcRec::theta1 [private] |
NTuple::Item<long> EmcRec::thtgap1 [private] |
NTuple::Item<float> EmcRec::tp [private] |
NTuple::Item<float> EmcRec::tphi [private] |
NTuple::Item<float> EmcRec::ttheta [private] |