EmcRec Class Reference

#include <EmcRec.h>

List of all members.

Public Member Functions

 EmcRec (const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()

Private Attributes

EmcRecDigit2Hit fDigit2Hit
EmcRecHit2Cluster fHit2Cluster
EmcRecCluster2ShowerAbsfCluster2Shower
RecEmcDigitMap fDigitMap
RecEmcHitMap fHitMap
RecEmcClusterMap fClusterMap
RecEmcShowerMap fShowerMap
IRawDataProviderSvcm_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::stringfPositionMode
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


Detailed Description

Definition at line 22 of file EmcRec.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

NTuple::Item<float> EmcRec::a20Moment [private]

Definition at line 95 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::a42Moment [private]

Definition at line 96 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::cluster2ndMoment [private]

Definition at line 92 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::dphi1 [private]

Definition at line 85 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::e3x3 [private]

Definition at line 87 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::e5x5 [private]

Definition at line 88 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::enseed [private]

Definition at line 89 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::eseed [private]

Definition at line 86 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::etof2x1 [private]

Definition at line 90 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::etof2x3 [private]

Definition at line 91 of file EmcRec.h.

Referenced by execute(), and initialize().

EmcRecCluster2ShowerAbs* EmcRec::fCluster2Shower [private]

Definition at line 33 of file EmcRec.h.

Referenced by execute(), finalize(), and initialize().

RecEmcClusterMap EmcRec::fClusterMap [private]

Definition at line 38 of file EmcRec.h.

Referenced by execute().

bool EmcRec::fDigiCalib [private]

Definition at line 47 of file EmcRec.h.

Referenced by EmcRec().

EmcRecDigit2Hit EmcRec::fDigit2Hit [private]

Definition at line 31 of file EmcRec.h.

Referenced by execute(), and initialize().

RecEmcDigitMap EmcRec::fDigitMap [private]

Definition at line 36 of file EmcRec.h.

Referenced by execute().

int EmcRec::fElecSaturation [private]

Definition at line 58 of file EmcRec.h.

Referenced by EmcRec().

int EmcRec::fEventNb [private]

Definition at line 46 of file EmcRec.h.

Referenced by EmcRec(), and execute().

EmcRecHit2Cluster EmcRec::fHit2Cluster [private]

Definition at line 32 of file EmcRec.h.

Referenced by execute().

RecEmcHitMap EmcRec::fHitMap [private]

Definition at line 37 of file EmcRec.h.

Referenced by execute().

double EmcRec::fMethodMode [private]

Definition at line 52 of file EmcRec.h.

Referenced by EmcRec().

bool EmcRec::fOnlineMode [private]

Definition at line 49 of file EmcRec.h.

Referenced by EmcRec().

int EmcRec::fOutput [private]

Definition at line 45 of file EmcRec.h.

Referenced by EmcRec(), execute(), and initialize().

double EmcRec::fPosCorr [private]

Definition at line 53 of file EmcRec.h.

Referenced by EmcRec().

std::vector<std::string> EmcRec::fPositionMode [private]

Definition at line 60 of file EmcRec.h.

Referenced by EmcRec().

RecEmcShowerMap EmcRec::fShowerMap [private]

Definition at line 39 of file EmcRec.h.

Referenced by execute().

double EmcRec::fTimeMax [private]

Definition at line 51 of file EmcRec.h.

Referenced by EmcRec().

double EmcRec::fTimeMin [private]

Definition at line 50 of file EmcRec.h.

Referenced by EmcRec().

bool EmcRec::fTofEnergy [private]

Definition at line 48 of file EmcRec.h.

Referenced by EmcRec().

NTuple::Item<float> EmcRec::latMoment [private]

Definition at line 94 of file EmcRec.h.

Referenced by execute(), and initialize().

int EmcRec::m_event [private]

Definition at line 44 of file EmcRec.h.

Referenced by EmcRec(), and execute().

PropertyMgr EmcRec::m_propMgr [private]

Definition at line 43 of file EmcRec.h.

Referenced by EmcRec().

IRawDataProviderSvc* EmcRec::m_rawDataProviderSvc [private]

Definition at line 42 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Tuple* EmcRec::m_tuple [private]

Definition at line 64 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::mpi0 [private]

Definition at line 97 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::ncluster [private]

Definition at line 80 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::ndigi [private]

Definition at line 78 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::nhit [private]

Definition at line 79 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::nneu [private]

Definition at line 74 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::npart [private]

Definition at line 75 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::nphi [private]

Definition at line 77 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::nrec [private]

Definition at line 72 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::nrun [private]

Definition at line 71 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::ntheta [private]

Definition at line 76 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::phi1 [private]

Definition at line 84 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::phigap1 [private]

Definition at line 99 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::pid [private]

Definition at line 66 of file EmcRec.h.

Referenced by initialize().

NTuple::Array<float> EmcRec::pp1 [private]

Definition at line 82 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Array<float> EmcRec::pp2 [private]

Definition at line 102 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::secondMoment [private]

Definition at line 93 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::theta1 [private]

Definition at line 83 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<long> EmcRec::thtgap1 [private]

Definition at line 98 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::tp [private]

Definition at line 67 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::tphi [private]

Definition at line 69 of file EmcRec.h.

Referenced by execute(), and initialize().

NTuple::Item<float> EmcRec::ttheta [private]

Definition at line 68 of file EmcRec.h.

Referenced by execute(), and initialize().


Generated on Tue Nov 29 23:18:43 2016 for BOSS_7.0.2 by  doxygen 1.4.7