#include <RecExtTrackCnv.h>
Inheritance diagram for RecExtTrackCnv:
Public Types | |
typedef Ty1 | source |
typedef Ty2 | destination |
Public Member Functions | |
virtual | ~RecExtTrackCnv () |
virtual long | repSvcType () const |
virtual StatusCode | initialize () |
virtual StatusCode | finalize () |
void | declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname) |
Store TDS path to link a particular converter to an object on the TDS. | |
virtual StatusCode | createObj (IOpaqueAddress *addr, DataObject *&dat) |
Convert the persistent object to transient. | |
virtual StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) |
Convert the transient object to the requested representation. | |
virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Resolve the references of the converted object. | |
virtual StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Resolve the references of the converted object. | |
TObject * | getReadObject () const |
get the object to be read | |
destination * | operator (const source &) const |
Static Public Member Functions | |
static const CLID & | classID () |
static const unsigned char | storageType () |
Storage type and class ID. | |
Protected Member Functions | |
RecExtTrackCnv (ISvcLocator *svc) | |
virtual StatusCode | DataObjectToTObject (DataObject *obj, RootAddress *addr) |
transformation to root | |
virtual StatusCode | TObjectToDataObject (DataObject *&obj) |
transformation from root | |
virtual destination * | convert (const source &) const =0 |
Protected Attributes | |
RootCnvSvc * | m_cnvSvc |
std::vector< RootCnvSvc::Leaf > | m_leaves |
RootInterface * | m_rootInterface |
pointer to the RootInterface | |
IDataProviderSvc * | m_eds |
pointer to eventdataservice | |
int | m_branchNr |
the branchNr of this converter for writing | |
int | m_branchNrDst |
int | m_branchNrMc |
int | m_branchNrRecon |
int | m_branchNrEvtRec |
int | m_branchNrEvtHeader |
int | m_branchNrEvtNavigator |
TObject * | m_objRead |
the object that was read | |
CLID | CLID_top |
the CLID of the upper converter if any | |
TArrayS * | m_branchNumbers |
array with number of branches for reading | |
std::string | m_rootBranchname |
root branchname (may be concatenated of severals) | |
std::string | m_rootTreename |
each converter knows it's treename | |
std::string | m_currentFileName |
std::vector< void * > | m_adresses |
each converter knows the corresponding adresses | |
RootEvtSelector * | m_evtsel |
Private Attributes | |
commonData | m_common |
relational maps | |
TObjArray * | m_extTrackCol |
root object to be read | |
Friends | |
class | CnvFactory< RecExtTrackCnv > |
Definition at line 15 of file RecExtTrackCnv.h.
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited] |
Definition at line 19 of file Converter.h.
Definition at line 18 of file Converter.h.
virtual RecExtTrackCnv::~RecExtTrackCnv | ( | ) | [inline, virtual] |
RecExtTrackCnv::RecExtTrackCnv | ( | ISvcLocator * | svc | ) | [protected] |
Definition at line 33 of file RecExtTrackCnv.cxx.
References RootEventBaseCnv::m_adresses, m_extTrackCol, RootEventBaseCnv::m_rootBranchname, and msgSvc().
00034 : RootEventBaseCnv(classID(), svc) 00035 { 00036 00037 // Here we associate this converter with the /Event path on the TDS. 00038 MsgStream log(msgSvc(), "RecExtTrackCnv"); 00039 //log << MSG::DEBUG << "Constructor called for " << objType() << endreq; 00040 //m_rootTreename ="Rec"; 00041 //m_rootBranchname ="m_RecExtTrackCol"; 00042 m_rootBranchname ="m_extTrackCol"; 00043 //declareObject(EventModel::Recon::ExtTrackCol, objType(), m_rootTreename, m_rootBranchname); 00044 m_adresses.push_back(&m_extTrackCol); 00045 m_extTrackCol=0; 00046 }
static const CLID& RecExtTrackCnv::classID | ( | ) | [inline, static] |
Definition at line 20 of file RecExtTrackCnv.h.
References CLID_RecExtTrackCol.
Referenced by RootCnvSvc::addConverters().
00021 { 00022 return CLID_RecExtTrackCol; 00023 }
virtual destination* Converter< Ty1, Ty2 >::convert | ( | const source & | ) | const [protected, pure virtual, inherited] |
StatusCode RootEventBaseCnv::createObj | ( | IOpaqueAddress * | addr, | |
DataObject *& | dat | |||
) | [virtual, inherited] |
Convert the persistent object to transient.
Reimplemented in EventCnv.
Definition at line 157 of file RootEventBaseCnv.cxx.
References RootEventBaseCnv::CLID_top, Bes_Common::DEBUG, calibUtil::ERROR, RootInterface::getBranchEntry(), RootAddress::getBranchname(), RootInterface::getCurrentFileName(), RootInterface::getENDFILE(), RootInterface::getEntries(), RootAddress::getEntryNr(), RootAddress::getNrBranches(), RootAddress::getPath(), RootEventBaseCnv::getReadObject(), RootEvtSelector::getRecId(), RootInterface::getSelectFromTag(), RootAddress::getTreename(), Bes_Common::INFO, RootEventBaseCnv::m_adresses, RootEventBaseCnv::m_branchNumbers, RootEventBaseCnv::m_currentFileName, RootEventBaseCnv::m_eds, RootEventBaseCnv::m_evtsel, RootEventBaseCnv::m_objRead, RootEventBaseCnv::m_rootInterface, msgSvc(), RootInterface::setBranchAddress(), RootAddress::setEntryNr(), subSeperate::temp, and RootEventBaseCnv::TObjectToDataObject().
00158 { 00159 // transform ROOT object to TDS object 00160 MsgStream log(msgSvc(), "RootEventBaseCnv"); 00161 log << MSG::DEBUG << "RootEventBaseCnv::createObj with clid " <<addr->clID()<< endreq; 00162 StatusCode sc; 00163 00164 // add 2005-11-29 00165 // log<<MSG::INFO<<"######### RootEventBaseCnv ::createObj begin of createObj: m_branchNumbers "<<m_branchNumbers->GetSize()<<"###############"<<endreq; 00166 00167 RootAddress *raddr=dynamic_cast<RootAddress *>(addr); 00168 if (!raddr) { 00169 log << MSG::ERROR << "Could not downcast to Root address" << endreq; 00170 return StatusCode::FAILURE; 00171 } 00172 00173 static int temp =0; //control the begin of each files 2005-12-01 00174 static int entryN =0; //control the event number of each files 2005-21-01 00175 static int brN =0; //control munber of branch of the tree; 00176 int lastBrn = brN; 00177 //lastBrn = brN; 00178 static int branchN=0; 00179 static bool isSet=true; 00180 00181 static int entryBefore = 0; 00182 static bool addEntryEachFile = true; 00183 00184 00185 if(m_rootInterface->getENDFILE() || (temp >0 && temp < branchN)){ // if the file has get the end:y the go to next file to create a new tree 00186 00187 if(m_rootInterface->getENDFILE() ) { 00188 entryN = 0; 00189 } 00190 00191 temp++; 00192 00193 delete m_branchNumbers; 00194 m_branchNumbers = new TArrayS(0); 00195 00196 if(temp == branchN) { 00197 temp =0; 00198 } 00199 } 00200 00201 if(m_rootInterface->getENDFILE()) addEntryEachFile = true; 00202 // the 2nd method 00203 if(m_evtsel->getRecId() - entryBefore == 0) { // first event in this file 00204 delete m_branchNumbers; 00205 m_branchNumbers = new TArrayS(0); 00206 } 00207 00208 //new method to initialize the branchNumber 00209 if(m_currentFileName=="") m_currentFileName = m_rootInterface->getCurrentFileName(); 00210 if(!(m_currentFileName == m_rootInterface->getCurrentFileName())){ 00211 m_currentFileName = m_rootInterface->getCurrentFileName(); 00212 delete m_branchNumbers; 00213 m_branchNumbers = new TArrayS(0); 00214 } 00215 //---------------------------------------- 00216 00217 if (m_branchNumbers->GetSize()<=0) { 00218 if(isSet) brN++; 00219 int branchNumber; 00220 for (int nb=0;nb<raddr->getNrBranches();nb++) { 00221 sc=m_rootInterface->setBranchAddress(raddr->getTreename().c_str(),raddr->getBranchname(nb).c_str(),m_adresses[nb],branchNumber); 00222 if (!sc.isSuccess()) 00223 { 00224 if(isSet) brN--; //liangyt: if fail to retrieve this branch, this will be not a effective branch. 00225 //entryN++; //liangyt: this is the second method 00226 if(temp>0) temp--; //temp > 0 means recording effective branch number. 00227 return sc; 00228 } 00229 m_branchNumbers->Set(nb+1); 00230 m_branchNumbers->AddAt(branchNumber,nb); 00231 00232 } 00233 } 00234 00236 if(addEntryEachFile&&(m_evtsel->getRecId()>entryBefore)){ // for a new file, add entry for ONLY one time. 00237 entryBefore += m_rootInterface->getEntries(); 00238 addEntryEachFile = false; 00239 } 00240 00241 if(lastBrn == brN && isSet ){ 00242 branchN = brN; 00243 isSet=false; 00244 } 00245 00246 if(isSet==false) log << MSG::INFO <<" 1st method set event as : "<<int(entryN/branchN)<<endreq; 00247 if(isSet==false) raddr->setEntryNr(int(entryN/branchN));//former method, keep it to be backup. 00248 if(m_evtsel) log << MSG::INFO <<" event id = "<<m_evtsel->getRecId()<<endreq; 00249 00250 00251 int eventID = 0; 00252 if(entryBefore > m_evtsel->getRecId()) 00253 eventID = m_evtsel->getRecId() + m_rootInterface->getEntries() - entryBefore; 00254 else if(entryBefore == m_evtsel->getRecId()) eventID = 0; 00255 else log << MSG::ERROR <<"eventId error!!!"<<endreq; 00256 00257 log << MSG::INFO <<" 2nd method set event as : "<<eventID<<endreq; 00258 00259 if(m_evtsel) raddr->setEntryNr(eventID); 00260 00261 //add dengzy 00262 if(m_rootInterface->getSelectFromTag()!=0) 00263 { 00264 if(m_evtsel) 00265 raddr->setEntryNr( m_evtsel->getRecId() ); 00266 }//end of add by dengzy 00267 00268 // read branch 00269 00270 if (m_branchNumbers->GetSize()>0) { 00271 int nbtot=0,nb; 00272 for (int ib=0;ib<m_branchNumbers->GetSize();ib++) { 00273 //sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),nb); 00274 //change to get branch entry with addr(set address for each entry) liangyt 00275 sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),m_adresses[ib],nb); 00276 if (sc.isFailure()) { 00277 log << MSG::ERROR << "Could not read branch " << raddr->getBranchname(nb) << endreq; 00278 return sc; 00279 } 00280 nbtot+=nb; 00281 } 00282 } 00283 00284 else { // get ROOT object 00285 if (CLID_top) { 00286 IConverter *p=conversionSvc()->converter(CLID_top); 00287 RootEventBaseCnv *cnv=dynamic_cast<RootEventBaseCnv *>(p); 00288 if (!cnv) { 00289 log << MSG::ERROR << "Could not downcast to RootEventBaseCnv " << endreq; 00290 return StatusCode::FAILURE; 00291 } 00292 m_objRead=cnv->getReadObject(); 00293 } 00294 } 00295 00296 //do concrete transformation in derived converter 00297 sc = TObjectToDataObject(refpObject); 00298 if (sc.isFailure()) { 00299 log << MSG::ERROR << "Could not transform object" << endreq; 00300 return sc; 00301 } 00302 00303 // verify if we have to register 00304 IRegistry* ent = addr->registry(); 00305 if ( ent == 0) { 00306 sc=m_eds->registerObject(raddr->getPath(),refpObject); 00307 if (sc.isFailure()) { 00308 log << MSG::ERROR << "Could not register object " << raddr->getPath()<<" status "<<sc.getCode()<<endreq; 00309 } 00310 // } 00311 } 00312 00313 entryN++; 00314 return StatusCode::SUCCESS; 00315 }
StatusCode RootEventBaseCnv::createRep | ( | DataObject * | pObject, | |
IOpaqueAddress *& | refpAddress | |||
) | [virtual, inherited] |
Convert the transient object to the requested representation.
Definition at line 78 of file RootEventBaseCnv.cxx.
References RootCnvSvc::createAddress(), RootEventBaseCnv::DataObjectToTObject(), calibUtil::ERROR, RootEventBaseCnv::m_cnvSvc, and msgSvc().
Referenced by TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), ExtTrackCnv::DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), and EmcDigiCnv::DataObjectToTObject().
00079 { 00080 // Purpose and Method: Convert the transient object to ROOT 00081 00082 MsgStream log(msgSvc(), "RootEventBaseCnv"); 00083 00084 StatusCode sc= StatusCode::SUCCESS; 00085 // get the corresponding address 00086 RootAddress *rootaddr; 00087 sc=m_cnvSvc->createAddress(obj,addr); 00088 00089 rootaddr = dynamic_cast<RootAddress *>(addr); 00090 00091 if (sc.isFailure() || !rootaddr ) { 00092 log << MSG::ERROR << "Could not create address for clid " <<obj->clID()<<", objname "<<obj->name()<<endreq; 00093 return StatusCode::FAILURE; 00094 } 00095 00096 // do the real conversion in the derived converter 00097 sc = DataObjectToTObject(obj,rootaddr); 00098 00099 delete addr; 00100 addr = NULL; 00101 00102 if (sc.isFailure()) { 00103 log << MSG::ERROR << "Could not transform object" << endreq; 00104 return sc; 00105 } 00106 00107 return StatusCode::SUCCESS; 00108 }
StatusCode RecExtTrackCnv::DataObjectToTObject | ( | DataObject * | obj, | |
RootAddress * | addr | |||
) | [protected, virtual] |
transformation to root
Implements RootEventBaseCnv.
Definition at line 222 of file RecExtTrackCnv.cxx.
References TRecTrackEvent::addExtTrack(), TRecTrackEvent::clearExtTrackCol(), RootEventBaseCnv::createRep(), Bes_Common::DEBUG, calibUtil::ERROR, EventModel::Recon::Event, TRecTrackEvent::getExtTrackCol(), RootCnvSvc::getRecTrackCnv(), RecTrackCnv::getWriteObject(), genRecEmupikp::i, ganga-rec::j, RootEventBaseCnv::m_cnvSvc, RootEventBaseCnv::m_eds, m_extTrackCol, msgSvc(), EventModel::Recon::RecExtTrackCol, TRecExtTrack::SetEmcErrorMatrix(), TRecExtTrack::SetEmcMomentumX(), TRecExtTrack::SetEmcMomentumY(), TRecExtTrack::SetEmcMomentumZ(), TRecExtTrack::SetEmcPath(), TRecExtTrack::SetEmcPositionX(), TRecExtTrack::SetEmcPositionY(), TRecExtTrack::SetEmcPositionZ(), TRecExtTrack::SetEmcPosSigmaAlongPhi(), TRecExtTrack::SetEmcPosSigmaAlongTheta(), TRecExtTrack::SetEmcVolumeName(), TRecExtTrack::SetEmcVolumeNumber(), TRecExtTrack::SetExtMucHit(), TRecExtTrack::SetMucErrorMatrix(), TRecExtTrack::SetMucMomentumX(), TRecExtTrack::SetMucMomentumY(), TRecExtTrack::SetMucMomentumZ(), TRecExtTrack::SetMucPositionX(), TRecExtTrack::SetMucPositionY(), TRecExtTrack::SetMucPositionZ(), TRecExtTrack::SetMucPosSigmaAlongT(), TRecExtTrack::SetMucPosSigmaAlongX(), TRecExtTrack::SetMucPosSigmaAlongY(), TRecExtTrack::SetMucPosSigmaAlongZ(), TRecExtTrack::SetMucVolumeName(), TRecExtTrack::SetMucVolumeNumber(), TRecExtTrack::SetSize(), TRecExtTrack::SetTof1(), TRecExtTrack::SetTof1ErrorMatrix(), TRecExtTrack::SetTof1MomentumX(), TRecExtTrack::SetTof1MomentumY(), TRecExtTrack::SetTof1MomentumZ(), TRecExtTrack::SetTof1Path(), TRecExtTrack::SetTof1PositionX(), TRecExtTrack::SetTof1PositionY(), TRecExtTrack::SetTof1PositionZ(), TRecExtTrack::SetTof1PosSigmaAlongT(), TRecExtTrack::SetTof1PosSigmaAlongX(), TRecExtTrack::SetTof1PosSigmaAlongY(), TRecExtTrack::SetTof1PosSigmaAlongZ(), TRecExtTrack::SetTof1VolumeName(), TRecExtTrack::SetTof1VolumeNumber(), TRecExtTrack::SetTof2(), TRecExtTrack::SetTof2ErrorMatrix(), TRecExtTrack::SetTof2MomentumX(), TRecExtTrack::SetTof2MomentumY(), TRecExtTrack::SetTof2MomentumZ(), TRecExtTrack::SetTof2Path(), TRecExtTrack::SetTof2PositionX(), TRecExtTrack::SetTof2PositionY(), TRecExtTrack::SetTof2PositionZ(), TRecExtTrack::SetTof2PosSigmaAlongT(), TRecExtTrack::SetTof2PosSigmaAlongX(), TRecExtTrack::SetTof2PosSigmaAlongY(), TRecExtTrack::SetTof2PosSigmaAlongZ(), TRecExtTrack::SetTof2VolumeName(), TRecExtTrack::SetTof2VolumeNumber(), TRecExtTrack::SetTrackId(), delete_small_size::size, t(), and x.
00222 { 00223 00224 00225 00226 MsgStream log(msgSvc(), "RecExtTrackCnv"); 00227 log << MSG::DEBUG << "RecExtTrackCnv::DataObjectToTObject" << endreq; 00228 StatusCode sc=StatusCode::SUCCESS; 00229 00230 RecExtTrackCol * extTrackColTds=dynamic_cast<RecExtTrackCol *> (obj); 00231 if (!extTrackColTds) { 00232 log << MSG::ERROR << "Could not downcast to RecExtTrackCol" << endreq; 00233 return StatusCode::FAILURE; 00234 } 00235 00236 DataObject *evt; 00237 m_eds->findObject(EventModel::Recon::Event,evt); 00238 if (evt==NULL) { 00239 log << MSG::ERROR << "Could not get ReconEvent in TDS " << endreq; 00240 return StatusCode::FAILURE; 00241 } 00242 00243 ReconEvent * devtTds=dynamic_cast<ReconEvent *> (evt); 00244 if (!devtTds) { 00245 log << MSG::ERROR << "RecExtTrackCnv:Could not downcast to TDS Rec Event" << endreq; 00246 } 00247 IOpaqueAddress *addr; 00248 00249 m_cnvSvc->getRecTrackCnv()->createRep(evt,addr); 00250 TRecTrackEvent *recEvt=m_cnvSvc->getRecTrackCnv()->getWriteObject(); 00251 00252 const TObjArray *m_extTrackCol = recEvt->getExtTrackCol(); 00253 00254 if (!m_extTrackCol) return sc; 00255 00256 recEvt->clearExtTrackCol(); //necessary in case there is I/O at the same time since array is static 00257 RecExtTrackCol::const_iterator extTrackTds; 00258 00259 for (extTrackTds = extTrackColTds->begin(); extTrackTds != extTrackColTds->end(); extTrackTds++) { 00260 //Get Data from TDS 00261 Int_t trackId = (*extTrackTds)->GetTrackId(); 00262 TRecExtTrack *extTrackRoot = new TRecExtTrack; 00263 //Set to Root 00264 extTrackRoot->SetTrackId(trackId); 00265 for(int iPart=0; iPart<5; iPart++) { 00266 //Tof layer1 00267 Double_t p1x = (*extTrackTds)->tof1Position(iPart).x(); 00268 Double_t p1y = (*extTrackTds)->tof1Position(iPart).y(); 00269 Double_t p1z = (*extTrackTds)->tof1Position(iPart).z(); 00270 Double_t m1x = (*extTrackTds)->tof1Momentum(iPart).x(); 00271 Double_t m1y = (*extTrackTds)->tof1Momentum(iPart).y(); 00272 Double_t m1z = (*extTrackTds)->tof1Momentum(iPart).z(); 00273 00274 TString v1s = (*extTrackTds)->tof1VolumeName(iPart) ; 00275 Int_t v1n = (*extTrackTds)->tof1VolumeNumber(iPart) ; 00276 Double_t tof1= (*extTrackTds)->tof1(iPart); 00277 Double_t tof1p = (*extTrackTds)->tof1Path(iPart); 00278 Double_t z1 = (*extTrackTds)->tof1PosSigmaAlongZ(iPart); 00279 Double_t t1 = (*extTrackTds)->tof1PosSigmaAlongT(iPart); 00280 Double_t x1 = (*extTrackTds)->tof1PosSigmaAlongX(iPart); 00281 Double_t y1 = (*extTrackTds)->tof1PosSigmaAlongY(iPart); 00282 Double_t e1m[6][6]; 00283 HepSymMatrix e1mTds = (*extTrackTds)->tof1ErrorMatrix(iPart); 00284 for (int i = 0;i<6 ;i++ ) 00285 for (int j= 0;j<6 ;j++ ) 00286 e1m[i][j] = e1mTds[i][j]; 00287 00288 //Tof llayer2 00289 Double_t p2x = (*extTrackTds)->tof2Position(iPart).x(); 00290 Double_t p2y = (*extTrackTds)->tof2Position(iPart).y(); 00291 Double_t p2z = (*extTrackTds)->tof2Position(iPart).z(); 00292 Double_t m2x = (*extTrackTds)->tof2Momentum(iPart).x(); 00293 Double_t m2y = (*extTrackTds)->tof2Momentum(iPart).y(); 00294 Double_t m2z = (*extTrackTds)->tof2Momentum(iPart).z(); 00295 00296 TString v2s = (*extTrackTds)->tof2VolumeName(iPart) ; 00297 Int_t v2n = (*extTrackTds)->tof2VolumeNumber(iPart) ; 00298 Double_t tof2= (*extTrackTds)->tof2(iPart); 00299 Double_t tof2p = (*extTrackTds)->tof2Path(iPart); 00300 Double_t z2 = (*extTrackTds)->tof2PosSigmaAlongZ(iPart); 00301 Double_t t2 = (*extTrackTds)->tof2PosSigmaAlongT(iPart); 00302 Double_t x2 = (*extTrackTds)->tof2PosSigmaAlongX(iPart); 00303 Double_t y2 = (*extTrackTds)->tof2PosSigmaAlongY(iPart); 00304 Double_t e2m[6][6]; 00305 HepSymMatrix e2mTds = (*extTrackTds)->tof2ErrorMatrix(iPart); 00306 for (int i = 0;i<6 ;i++ ) 00307 for (int j= 0;j<6 ;j++ ) 00308 e2m[i][j] = e2mTds[i][j]; 00309 //Emc 00310 Double_t pEx = (*extTrackTds)->emcPosition(iPart).x(); 00311 Double_t pEy = (*extTrackTds)->emcPosition(iPart).y(); 00312 Double_t pEz = (*extTrackTds)->emcPosition(iPart).z(); 00313 Double_t mEx = (*extTrackTds)->emcMomentum(iPart).x(); 00314 Double_t mEy = (*extTrackTds)->emcMomentum(iPart).y(); 00315 Double_t mEz = (*extTrackTds)->emcMomentum(iPart).z(); 00316 00317 TString vEs = (*extTrackTds)->emcVolumeName(iPart) ; 00318 Int_t vEn = (*extTrackTds)->emcVolumeNumber(iPart) ; 00319 00320 Double_t theta = (*extTrackTds)->emcPosSigmaAlongTheta(iPart); 00321 Double_t phi = (*extTrackTds)->emcPosSigmaAlongPhi(iPart); 00322 00323 Double_t eEm[6][6]; 00324 HepSymMatrix eEmTds = (*extTrackTds)->emcErrorMatrix(iPart); 00325 for (int i = 0;i<6 ;i++ ) 00326 for (int j= 0;j<6 ;j++ ) 00327 eEm[i][j] = eEmTds[i][j]; 00328 Double_t emcPath=(*extTrackTds)->emcPath(iPart); 00329 00330 //Muc 00331 Double_t pMx = (*extTrackTds)->mucPosition(iPart).x(); 00332 Double_t pMy = (*extTrackTds)->mucPosition(iPart).y(); 00333 Double_t pMz = (*extTrackTds)->mucPosition(iPart).z(); 00334 Double_t mMx = (*extTrackTds)->mucMomentum(iPart).x(); 00335 Double_t mMy = (*extTrackTds)->mucMomentum(iPart).y(); 00336 Double_t mMz = (*extTrackTds)->mucMomentum(iPart).z(); 00337 00338 TString vMs = (*extTrackTds)->mucVolumeName(iPart) ; 00339 Int_t vMn = (*extTrackTds)->mucVolumeNumber(iPart) ; 00340 00341 Double_t zM = (*extTrackTds)->mucPosSigmaAlongZ(iPart); 00342 Double_t tM = (*extTrackTds)->mucPosSigmaAlongT(iPart); 00343 Double_t xM = (*extTrackTds)->mucPosSigmaAlongX(iPart); 00344 Double_t yM = (*extTrackTds)->mucPosSigmaAlongY(iPart); 00345 00346 Double_t eMm[6][6]; 00347 HepSymMatrix eMmTds = (*extTrackTds)->mucErrorMatrix(iPart); 00348 for (int i = 0;i<6 ;i++ ) 00349 for (int j= 0;j<6 ;j++ ) 00350 eMm[i][j]= eMmTds[i][j]; 00351 00352 //ExtMucHitVec 00353 ExtMucHitVec vecHit = (*extTrackTds)->GetExtMucHitVec(iPart); 00354 Int_t size = vecHit.size(); 00355 00356 //m_common.m_extTrackMap[(*extTrackTds)] = extTrackRoot; 00357 00358 //Set to Root 00359 00360 //ExtMucHitVec 00361 extTrackRoot->SetSize(size,iPart); 00362 for(int i=0;i<size;i++){ 00363 Double_t px = vecHit[i].GetPosition().x(); 00364 Double_t py = vecHit[i].GetPosition().y(); 00365 Double_t pz = vecHit[i].GetPosition().z(); 00366 Double_t mx = vecHit[i].GetMomentum().x(); 00367 Double_t my = vecHit[i].GetMomentum().y(); 00368 Double_t mz = vecHit[i].GetMomentum().z(); 00369 TString vs = vecHit[i].GetVolumeName(); 00370 Int_t vn = vecHit[i].GetVolumeNumber(); 00371 Double_t z = vecHit[i].GetPosSigmaAlongZ(); 00372 Double_t t = vecHit[i].GetPosSigmaAlongT(); 00373 Double_t x = vecHit[i].GetPosSigmaAlongX(); 00374 Double_t y = vecHit[i].GetPosSigmaAlongY(); 00375 Double_t m[6][6]; 00376 HepSymMatrix mTds = vecHit[i].GetErrorMatrix(); 00377 for (int j = 0;j<6;j++) 00378 for(int k=0;k<6;k++) 00379 m[j][k] = mTds[j][k]; 00380 00381 extTrackRoot->SetExtMucHit(px,py,pz,mx,my,mz,vs,vn,z,t,x,y,m,iPart); 00382 } 00383 00384 //Tof layer1 00385 extTrackRoot->SetTof1PositionX(p1x,iPart); 00386 extTrackRoot->SetTof1PositionY(p1y,iPart); 00387 extTrackRoot->SetTof1PositionZ(p1z,iPart); 00388 extTrackRoot->SetTof1MomentumX(m1x,iPart); 00389 extTrackRoot->SetTof1MomentumY(m1y,iPart); 00390 extTrackRoot->SetTof1MomentumZ(m1z,iPart); 00391 00392 extTrackRoot->SetTof1VolumeName(v1s,iPart); 00393 extTrackRoot->SetTof1VolumeNumber(v1n,iPart); 00394 00395 extTrackRoot->SetTof1(tof1,iPart); 00396 extTrackRoot->SetTof1Path(tof1p,iPart); 00397 00398 extTrackRoot->SetTof1PosSigmaAlongZ(z1,iPart); 00399 extTrackRoot->SetTof1PosSigmaAlongT(t1,iPart); 00400 extTrackRoot->SetTof1PosSigmaAlongX(x1,iPart); 00401 extTrackRoot->SetTof1PosSigmaAlongY(y1,iPart); 00402 00403 extTrackRoot->SetTof1ErrorMatrix(e1m,iPart); 00404 //Tof layer2 00405 extTrackRoot->SetTof2PositionX(p2x,iPart); 00406 extTrackRoot->SetTof2PositionY(p2y,iPart); 00407 extTrackRoot->SetTof2PositionZ(p2z,iPart); 00408 extTrackRoot->SetTof2MomentumX(m2x,iPart); 00409 extTrackRoot->SetTof2MomentumY(m2y,iPart); 00410 extTrackRoot->SetTof2MomentumZ(m2z,iPart); 00411 00412 extTrackRoot->SetTof2VolumeName(v2s,iPart); 00413 extTrackRoot->SetTof2VolumeNumber(v2n,iPart); 00414 00415 extTrackRoot->SetTof2(tof2,iPart); 00416 extTrackRoot->SetTof2Path(tof2p,iPart); 00417 00418 extTrackRoot->SetTof2PosSigmaAlongZ(z2,iPart); 00419 extTrackRoot->SetTof2PosSigmaAlongT(t2,iPart); 00420 extTrackRoot->SetTof2PosSigmaAlongX(x2,iPart); 00421 extTrackRoot->SetTof2PosSigmaAlongY(y2,iPart); 00422 00423 extTrackRoot->SetTof2ErrorMatrix(e2m,iPart); 00424 //Emc 00425 extTrackRoot->SetEmcPositionX(pEx,iPart); 00426 extTrackRoot->SetEmcPositionY(pEy,iPart); 00427 extTrackRoot->SetEmcPositionZ(pEz,iPart); 00428 extTrackRoot->SetEmcMomentumX(mEx,iPart); 00429 extTrackRoot->SetEmcMomentumY(mEy,iPart); 00430 extTrackRoot->SetEmcMomentumZ(mEz,iPart); 00431 00432 extTrackRoot->SetEmcVolumeName(vEs,iPart); 00433 extTrackRoot->SetEmcVolumeNumber(vEn,iPart); 00434 00435 extTrackRoot->SetEmcPosSigmaAlongTheta(theta,iPart); 00436 extTrackRoot->SetEmcPosSigmaAlongPhi(phi,iPart); 00437 00438 extTrackRoot->SetEmcErrorMatrix(eEm,iPart); 00439 extTrackRoot->SetEmcPath(emcPath,iPart); 00440 //Muc 00441 extTrackRoot->SetMucPositionX(pMx,iPart); 00442 extTrackRoot->SetMucPositionY(pMy,iPart); 00443 extTrackRoot->SetMucPositionZ(pMz,iPart); 00444 extTrackRoot->SetMucMomentumX(mMx,iPart); 00445 extTrackRoot->SetMucMomentumY(mMy,iPart); 00446 extTrackRoot->SetMucMomentumZ(mMz,iPart); 00447 00448 extTrackRoot->SetMucVolumeName(vMs,iPart); 00449 extTrackRoot->SetMucVolumeNumber(vMn,iPart); 00450 00451 extTrackRoot->SetMucPosSigmaAlongZ(zM,iPart); 00452 extTrackRoot->SetMucPosSigmaAlongT(tM,iPart); 00453 extTrackRoot->SetMucPosSigmaAlongX(xM,iPart); 00454 extTrackRoot->SetMucPosSigmaAlongY(yM,iPart); 00455 00456 extTrackRoot->SetMucErrorMatrix(eMm,iPart); 00457 00458 } 00459 recEvt->addExtTrack(extTrackRoot); 00460 } 00461 00462 return StatusCode::SUCCESS; 00463 }
void RootEventBaseCnv::declareObject | ( | const std::string & | fullPath, | |
const CLID & | clid, | |||
const std::string & | treename, | |||
const std::string & | branchname | |||
) | [inherited] |
Store TDS path to link a particular converter to an object on the TDS.
Definition at line 150 of file RootEventBaseCnv.cxx.
References RootEventBaseCnv::m_leaves.
Referenced by RecMucRecHitCnv::RecMucRecHitCnv().
00151 { 00152 // Purpose and Method: Save the path on the TDS, treename, pathname in the m_leaves vector, 00153 // corresponding to the DataObject that the converter handles. 00154 m_leaves.push_back(RootCnvSvc::Leaf(path, cl,treename,branchname)); 00155 }
StatusCode RootEventBaseCnv::fillObjRefs | ( | IOpaqueAddress * | pAddress, | |
DataObject * | pObject | |||
) | [virtual, inherited] |
Resolve the references of the converted object.
Definition at line 117 of file RootEventBaseCnv.cxx.
References msgSvc().
00118 { 00119 // Purpose and Method: Resolve the references of the converted object. 00120 // It is expected that derived classes will override this method. 00121 MsgStream log(msgSvc(), "RootEventBaseCnv"); 00122 return StatusCode::SUCCESS; 00123 }
StatusCode RootEventBaseCnv::fillRepRefs | ( | IOpaqueAddress * | pAddress, | |
DataObject * | pObject | |||
) | [virtual, inherited] |
Resolve the references of the converted object.
Definition at line 109 of file RootEventBaseCnv.cxx.
References msgSvc().
00110 { 00111 // Purpose and Method: Resolve the references of the converted object. 00112 // It is expected that derived classes will override this method. 00113 MsgStream log(msgSvc(), "RootEventBaseCnv"); 00114 return StatusCode::SUCCESS; 00115 }
StatusCode RootEventBaseCnv::finalize | ( | ) | [virtual, inherited] |
Definition at line 142 of file RootEventBaseCnv.cxx.
References RootEventBaseCnv::m_cnvSvc.
00142 { 00143 if ( m_cnvSvc ) { 00144 m_cnvSvc->release(); 00145 m_cnvSvc=0; 00146 } 00147 return Converter::finalize(); 00148 }
TObject* RootEventBaseCnv::getReadObject | ( | ) | const [inline, inherited] |
get the object to be read
Definition at line 125 of file RootEventBaseCnv.h.
References RootEventBaseCnv::m_objRead.
Referenced by RootEventBaseCnv::createObj().
00125 { return m_objRead;}
StatusCode RootEventBaseCnv::initialize | ( | ) | [virtual, inherited] |
Reimplemented in DigiCnv, DstCnv, EvtHeaderCnv, EvtNavigatorCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, and TrigCnv.
Definition at line 126 of file RootEventBaseCnv.cxx.
References IID_IRootCnvSvc, and RootEventBaseCnv::m_cnvSvc.
Referenced by TrigCnv::initialize(), RecTrackCnv::initialize(), McCnv::initialize(), HltCnv::initialize(), EvtRecCnv::initialize(), EvtNavigatorCnv::initialize(), EvtHeaderCnv::initialize(), DstCnv::initialize(), and DigiCnv::initialize().
00126 { 00127 00128 StatusCode status = Converter::initialize(); 00129 00130 if ( status.isSuccess() ) { 00131 IService* isvc = 0; 00132 status = serviceLocator()->service("RootCnvSvc", isvc, false); 00133 if ( !status.isSuccess() ) status = serviceLocator()->service("EventCnvSvc", isvc, true); 00134 if ( status.isSuccess() ) { 00135 status = isvc->queryInterface(IID_IRootCnvSvc, (void**)&m_cnvSvc); 00136 } 00137 } 00138 00139 return status; 00140 }
destination* Converter< Ty1, Ty2 >::operator | ( | const source & | ) | const [inline, inherited] |
virtual long RootEventBaseCnv::repSvcType | ( | ) | const [inline, virtual, inherited] |
Definition at line 88 of file RootEventBaseCnv.h.
References ROOT_StorageType.
00088 { 00089 return ROOT_StorageType; 00090 }
static const unsigned char RootEventBaseCnv::storageType | ( | ) | [inline, static, inherited] |
Storage type and class ID.
Definition at line 84 of file RootEventBaseCnv.h.
References ROOT_StorageType.
00084 { 00085 return ROOT_StorageType; 00086 }
StatusCode RecExtTrackCnv::TObjectToDataObject | ( | DataObject *& | obj | ) | [protected, virtual] |
transformation from root
Implements RootEventBaseCnv.
Definition at line 48 of file RecExtTrackCnv.cxx.
References RecExtTrack::AddExtMucHit(), Bes_Common::DEBUG, TRecExtTrack::emcPath(), TRecExtTrack::GetEmcErrorMatrix(), TRecExtTrack::GetEmcMomentumX(), TRecExtTrack::GetEmcMomentumY(), TRecExtTrack::GetEmcMomentumZ(), TRecExtTrack::GetEmcPositionX(), TRecExtTrack::GetEmcPositionY(), TRecExtTrack::GetEmcPositionZ(), TRecExtTrack::GetEmcPosSigmaAlongPhi(), TRecExtTrack::GetEmcPosSigmaAlongTheta(), TRecExtTrack::GetEmcVolumeName(), TRecExtTrack::GetEmcVolumeNumber(), TRecExtTrack::GetErrorMatrix(), TRecExtTrack::GetMomentumX(), TRecExtTrack::GetMomentumY(), TRecExtTrack::GetMomentumZ(), TRecExtTrack::GetMucErrorMatrix(), TRecExtTrack::GetMucMomentumX(), TRecExtTrack::GetMucMomentumY(), TRecExtTrack::GetMucMomentumZ(), TRecExtTrack::GetMucPositionX(), TRecExtTrack::GetMucPositionY(), TRecExtTrack::GetMucPositionZ(), TRecExtTrack::GetMucPosSigmaAlongT(), TRecExtTrack::GetMucPosSigmaAlongX(), TRecExtTrack::GetMucPosSigmaAlongY(), TRecExtTrack::GetMucPosSigmaAlongZ(), TRecExtTrack::GetMucVolumeName(), TRecExtTrack::GetMucVolumeNumber(), TRecExtTrack::GetPositionX(), TRecExtTrack::GetPositionY(), TRecExtTrack::GetPositionZ(), TRecExtTrack::GetPosSigmaAlongT(), TRecExtTrack::GetPosSigmaAlongX(), TRecExtTrack::GetPosSigmaAlongY(), TRecExtTrack::GetPosSigmaAlongZ(), TRecExtTrack::GetSize(), TRecExtTrack::GetTof1(), TRecExtTrack::GetTof1ErrorMatrix(), TRecExtTrack::GetTof1MomentumX(), TRecExtTrack::GetTof1MomentumY(), TRecExtTrack::GetTof1MomentumZ(), TRecExtTrack::GetTof1Path(), TRecExtTrack::GetTof1PositionX(), TRecExtTrack::GetTof1PositionY(), TRecExtTrack::GetTof1PositionZ(), TRecExtTrack::GetTof1PosSigmaAlongT(), TRecExtTrack::GetTof1PosSigmaAlongX(), TRecExtTrack::GetTof1PosSigmaAlongY(), TRecExtTrack::GetTof1PosSigmaAlongZ(), TRecExtTrack::GetTof1VolumeName(), TRecExtTrack::GetTof1VolumeNumber(), TRecExtTrack::GetTof2(), TRecExtTrack::GetTof2ErrorMatrix(), TRecExtTrack::GetTof2MomentumX(), TRecExtTrack::GetTof2MomentumY(), TRecExtTrack::GetTof2MomentumZ(), TRecExtTrack::GetTof2Path(), TRecExtTrack::GetTof2PositionX(), TRecExtTrack::GetTof2PositionY(), TRecExtTrack::GetTof2PositionZ(), TRecExtTrack::GetTof2PosSigmaAlongT(), TRecExtTrack::GetTof2PosSigmaAlongX(), TRecExtTrack::GetTof2PosSigmaAlongY(), TRecExtTrack::GetTof2PosSigmaAlongZ(), TRecExtTrack::GetTof2VolumeName(), TRecExtTrack::GetTof2VolumeNumber(), TRecExtTrack::GetTrackId(), TRecExtTrack::GetVolumeName(), TRecExtTrack::GetVolumeNumber(), genRecEmupikp::i, ganga-rec::j, m_common, m_extTrackCol, commonData::m_rootExtTrackMap, msgSvc(), EventModel::Recon::RecExtTrackCol, DstExtTrack::SetEmcData(), DstExtTrack::SetEmcPath(), ExtMucHit::SetExtMucHit(), DstExtTrack::SetMucData(), DstExtTrack::SetParType(), DstExtTrack::SetTof1Data(), DstExtTrack::SetTof2Data(), DstExtTrack::SetTrackId(), delete_small_size::size, deljobs::string, t(), and x.
00048 { 00049 // creation of TDS object from root object 00050 MsgStream log(msgSvc(), "RecExtTrackCnv"); 00051 log << MSG::DEBUG << "RecExtTrackCnv::TObjectToDataObject" << endreq; 00052 StatusCode sc=StatusCode::SUCCESS; 00053 00054 // create the TDS location for the ExtTrack Collection 00055 RecExtTrackCol* extTrackTdsCol = new RecExtTrackCol; 00056 refpObject=extTrackTdsCol; 00057 00058 00059 // now convert 00060 if (!m_extTrackCol) return sc; 00061 TIter extTrackIter(m_extTrackCol); 00062 TRecExtTrack *extTrackRoot = 0; 00063 while ((extTrackRoot = (TRecExtTrack*)extTrackIter.Next())) { 00064 00065 RecExtTrack *extTrackTds = new RecExtTrack(); 00066 m_common.m_rootExtTrackMap[extTrackRoot] = extTrackTds; 00067 int trackId = extTrackRoot->GetTrackId(); 00068 extTrackTds->SetTrackId(trackId); 00069 for(int iPart=0; iPart<5; iPart++) { 00070 extTrackTds->SetParType(iPart); 00071 //Tof layer1: 00072 double p1x = extTrackRoot->GetTof1PositionX(iPart); 00073 double p1y = extTrackRoot->GetTof1PositionY(iPart); 00074 double p1z = extTrackRoot->GetTof1PositionZ(iPart); 00075 double m1x = extTrackRoot->GetTof1MomentumX(iPart); 00076 double m1y = extTrackRoot->GetTof1MomentumY(iPart); 00077 double m1z = extTrackRoot->GetTof1MomentumZ(iPart); 00078 Hep3Vector tof1p(p1x,p1y,p1z); 00079 Hep3Vector tof1m(m1x,m1y,m1z); 00080 00081 // char * pTof1 = extTrackRoot->GetTof1VolumeName().Data(); 00082 string v1s = extTrackRoot->GetTof1VolumeName(iPart).Data(); 00083 int v1n = extTrackRoot->GetTof1VolumeNumber(iPart) ; 00084 double tof1= extTrackRoot->GetTof1(iPart); 00085 double tof1path= extTrackRoot->GetTof1Path(iPart); 00086 double z1 = extTrackRoot->GetTof1PosSigmaAlongZ(iPart); 00087 double t1 = extTrackRoot->GetTof1PosSigmaAlongT(iPart); 00088 double x1 = extTrackRoot->GetTof1PosSigmaAlongX(iPart); 00089 double y1 = extTrackRoot->GetTof1PosSigmaAlongY(iPart); 00090 HepSymMatrix e1m(6) ; 00091 for (int i = 0;i<6 ;i++ ) 00092 for (int j= 0;j<6 ;j++ ) 00093 e1m[i][j]= extTrackRoot->GetTof1ErrorMatrix(i , j, iPart) ; 00094 00095 //Tof layer2: 00096 double p2x = extTrackRoot->GetTof2PositionX(iPart) ; 00097 double p2y = extTrackRoot->GetTof2PositionY(iPart) ; 00098 double p2z = extTrackRoot->GetTof2PositionZ(iPart) ; 00099 double m2x = extTrackRoot->GetTof2MomentumX(iPart) ; 00100 double m2y = extTrackRoot->GetTof2MomentumY(iPart) ; 00101 double m2z = extTrackRoot->GetTof2MomentumZ(iPart); 00102 Hep3Vector tof2p(p2x,p2y,p2z); 00103 Hep3Vector tof2m(m2x,m2y,m2z); 00104 00105 string v2s = extTrackRoot->GetTof2VolumeName(iPart).Data(); 00106 int v2n = extTrackRoot->GetTof2VolumeNumber(iPart) ; 00107 double tof2= extTrackRoot->GetTof2(iPart); 00108 double tof2path = extTrackRoot->GetTof2Path(iPart); 00109 double z2 = extTrackRoot->GetTof2PosSigmaAlongZ(iPart) ; 00110 double t2 = extTrackRoot->GetTof2PosSigmaAlongT(iPart); 00111 double x2 = extTrackRoot->GetTof2PosSigmaAlongX(iPart); 00112 double y2 = extTrackRoot->GetTof2PosSigmaAlongY(iPart); 00113 HepSymMatrix e2m(6) ; 00114 for (int i = 0;i<6 ;i++ ) 00115 for (int j= 0;j<6 ;j++ ) 00116 e2m[i][j]= extTrackRoot->GetTof2ErrorMatrix(i,j,iPart) ; 00117 00118 //Emc 00119 double pEx = extTrackRoot->GetEmcPositionX(iPart); 00120 double pEy = extTrackRoot->GetEmcPositionY(iPart); 00121 double pEz = extTrackRoot->GetEmcPositionZ(iPart); 00122 double mEx = extTrackRoot->GetEmcMomentumX(iPart); 00123 double mEy = extTrackRoot->GetEmcMomentumY(iPart); 00124 double mEz = extTrackRoot->GetEmcMomentumZ(iPart); 00125 Hep3Vector Ep(pEx,pEy,pEz); 00126 Hep3Vector Em(mEx,mEy,mEz); 00127 00128 string vEs = extTrackRoot->GetEmcVolumeName(iPart).Data(); 00129 int vEn = extTrackRoot->GetEmcVolumeNumber(iPart); 00130 double theta = extTrackRoot->GetEmcPosSigmaAlongTheta(iPart); 00131 double phi = extTrackRoot->GetEmcPosSigmaAlongPhi(iPart); 00132 HepSymMatrix eEm(6) ; 00133 for(int i=0;i<6 ;i++ ) 00134 for(int j= 0;j<6 ;j++ ) 00135 eEm[i][j]= extTrackRoot->GetEmcErrorMatrix(i,j,iPart); 00136 double emcPath=extTrackRoot->emcPath(iPart); 00137 00138 //Muc 00139 double pMx = extTrackRoot->GetMucPositionX(iPart) ; 00140 double pMy = extTrackRoot->GetMucPositionY(iPart) ; 00141 double pMz = extTrackRoot->GetMucPositionZ(iPart) ; 00142 double mMx = extTrackRoot->GetMucMomentumX(iPart) ; 00143 double mMy = extTrackRoot->GetMucMomentumY(iPart) ; 00144 double mMz = extTrackRoot->GetMucMomentumZ(iPart); 00145 Hep3Vector Mp(pMx,pMy,pMz); 00146 Hep3Vector Mm(mMx,mMy,mMz); 00147 00148 string vMs = extTrackRoot->GetMucVolumeName(iPart).Data(); 00149 int vMn = extTrackRoot->GetMucVolumeNumber(iPart) ; 00150 00151 double zM = extTrackRoot->GetMucPosSigmaAlongZ(iPart) ; 00152 double tM = extTrackRoot->GetMucPosSigmaAlongT(iPart); 00153 double xM = extTrackRoot->GetMucPosSigmaAlongX(iPart); 00154 double yM = extTrackRoot->GetMucPosSigmaAlongY(iPart); 00155 HepSymMatrix eMm(6) ; 00156 for (int i = 0;i<6 ;i++ ) 00157 for (int j= 0;j<6 ;j++ ) 00158 eMm[i][j]= extTrackRoot->GetMucErrorMatrix(i,j,iPart) ; 00159 00160 00161 //ExtMucHitVec 00162 int size = extTrackRoot->GetSize(iPart); 00163 ExtMucHit aExtMucHit; 00164 // Hep3Vector p(0,0,0); 00165 // Hep3Vector m(0,0,0); 00166 string vs; 00167 int vn; 00168 double z; 00169 double t; 00170 double x; 00171 double y; 00172 HepSymMatrix matrix(6); 00173 00174 for(int i =0;i<size;i++){ 00175 double px = extTrackRoot->GetPositionX(i,iPart) ; 00176 double py = extTrackRoot->GetPositionY(i,iPart) ; 00177 double pz = extTrackRoot->GetPositionZ(i,iPart) ; 00178 Hep3Vector p(px,py,pz); 00179 double mx = extTrackRoot->GetMomentumX(i,iPart) ; 00180 double my = extTrackRoot->GetMomentumY(i,iPart) ; 00181 double mz = extTrackRoot->GetMomentumZ(i,iPart); 00182 Hep3Vector m(mx,my,mz); 00183 vs = extTrackRoot->GetVolumeName(i,iPart).Data(); 00184 vn = extTrackRoot->GetVolumeNumber(i,iPart) ; 00185 z = extTrackRoot->GetPosSigmaAlongZ(i,iPart) ; 00186 t = extTrackRoot->GetPosSigmaAlongT(i,iPart); 00187 x = extTrackRoot->GetPosSigmaAlongX(i,iPart); 00188 y = extTrackRoot->GetPosSigmaAlongY(i,iPart); 00189 std::vector<double> vecError = extTrackRoot->GetErrorMatrix(i,iPart); 00190 for(int k =0;k<6;k++){ 00191 for(int j =0; j<6;j++){ 00192 matrix[k][j] = vecError[k*6+j]; 00193 } 00194 } 00195 aExtMucHit.SetExtMucHit(p,m,vs,vn,matrix,z,t,x,y); 00196 extTrackTds->AddExtMucHit(aExtMucHit); 00197 } 00198 00199 // DstExtTrack *extTrackTds = new DstExtTrack(); 00200 extTrackTds->SetTof1Data( tof1p, tof1m, v1s, v1n , tof1, tof1path, e1m, z1, t1, x1, y1 ); 00201 extTrackTds->SetTof2Data( tof2p, tof2m, v2s, v2n , tof2, tof2path, e2m, z2, t2, x2, y2 ); 00202 extTrackTds->SetEmcData( Ep, Em, vEs, vEn , theta, phi , eEm); 00203 extTrackTds->SetEmcPath(emcPath); 00204 extTrackTds->SetMucData( Mp, Mm, vMs, vMn , eMm, zM, tM, xM, yM ); 00205 00206 extTrackTdsCol->push_back(extTrackTds); 00207 00208 00209 //delete extTrackTds; // wensp add 2005/12/31 00210 // extTrackTds = NULL; 00211 } 00212 extTrackTds->SetParType(2);// default particle: pion 00213 } 00214 //m_extTrackCol->Delete(); // wensp add 2005/12/30 00215 delete m_extTrackCol; 00216 m_extTrackCol = 0; 00217 00218 00219 return StatusCode::SUCCESS; 00220 }
friend class CnvFactory< RecExtTrackCnv > [friend] |
Definition at line 17 of file RecExtTrackCnv.h.
CLID RootEventBaseCnv::CLID_top [protected, inherited] |
the CLID of the upper converter if any
Definition at line 61 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().
std::vector<void *> RootEventBaseCnv::m_adresses [protected, inherited] |
each converter knows the corresponding adresses
Definition at line 73 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), DigiCnv::DigiCnv(), DstHltInfCnv::DstHltInfCnv(), EmcDigiCnv::EmcDigiCnv(), EmcMcHitCnv::EmcMcHitCnv(), EmcTrackCnv::EmcTrackCnv(), EvtHeaderCnv::EvtHeaderCnv(), EvtNavigatorCnv::EvtNavigatorCnv(), EvtRecDTagCnv::EvtRecDTagCnv(), EvtRecEtaToGGCnv::EvtRecEtaToGGCnv(), EvtRecEventCnv::EvtRecEventCnv(), EvtRecPi0Cnv::EvtRecPi0Cnv(), EvtRecPrimaryVertexCnv::EvtRecPrimaryVertexCnv(), EvtRecTrackCnv::EvtRecTrackCnv(), EvtRecVeeVertexCnv::EvtRecVeeVertexCnv(), ExtTrackCnv::ExtTrackCnv(), HltInfCnv::HltInfCnv(), HltRawCnv::HltRawCnv(), LumiDigiCnv::LumiDigiCnv(), McParticleCnv::McParticleCnv(), MdcDedxCnv::MdcDedxCnv(), MdcDigiCnv::MdcDigiCnv(), MdcKalTrackCnv::MdcKalTrackCnv(), MdcMcHitCnv::MdcMcHitCnv(), MdcTrackCnv::MdcTrackCnv(), MucDigiCnv::MucDigiCnv(), MucMcHitCnv::MucMcHitCnv(), MucTrackCnv::MucTrackCnv(), RecBTofCalHitCnv::RecBTofCalHitCnv(), RecEmcClusterCnv::RecEmcClusterCnv(), RecEmcHitCnv::RecEmcHitCnv(), RecEmcShowerCnv::RecEmcShowerCnv(), RecETofCalHitCnv::RecETofCalHitCnv(), RecEvTimeCnv::RecEvTimeCnv(), RecExtTrackCnv(), RecMdcDedxCnv::RecMdcDedxCnv(), RecMdcDedxHitCnv::RecMdcDedxHitCnv(), RecMdcHitCnv::RecMdcHitCnv(), RecMdcKalHelixSegCnv::RecMdcKalHelixSegCnv(), RecMdcKalTrackCnv::RecMdcKalTrackCnv(), RecMdcTrackCnv::RecMdcTrackCnv(), RecMucRecHitCnv::RecMucRecHitCnv(), RecMucTrackCnv::RecMucTrackCnv(), RecTofTrackCnv::RecTofTrackCnv(), RecZddChannelCnv::RecZddChannelCnv(), TofDigiCnv::TofDigiCnv(), TofMcHitCnv::TofMcHitCnv(), TofTrackCnv::TofTrackCnv(), and TrigDataCnv::TrigDataCnv().
int RootEventBaseCnv::m_branchNr [protected, inherited] |
the branchNr of this converter for writing
Definition at line 49 of file RootEventBaseCnv.h.
Referenced by TrigCnv::DataObjectToTObject(), HltCnv::DataObjectToTObject(), DigiCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrDst [protected, inherited] |
Definition at line 50 of file RootEventBaseCnv.h.
Referenced by DstCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrEvtHeader [protected, inherited] |
Definition at line 54 of file RootEventBaseCnv.h.
Referenced by EvtHeaderCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrEvtNavigator [protected, inherited] |
Definition at line 55 of file RootEventBaseCnv.h.
Referenced by EvtNavigatorCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrEvtRec [protected, inherited] |
Definition at line 53 of file RootEventBaseCnv.h.
Referenced by EvtRecCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrMc [protected, inherited] |
Definition at line 51 of file RootEventBaseCnv.h.
Referenced by McCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
int RootEventBaseCnv::m_branchNrRecon [protected, inherited] |
Definition at line 52 of file RootEventBaseCnv.h.
Referenced by RecTrackCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
TArrayS* RootEventBaseCnv::m_branchNumbers [protected, inherited] |
array with number of branches for reading
Definition at line 64 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().
RootCnvSvc* RootEventBaseCnv::m_cnvSvc [protected, inherited] |
Definition at line 39 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createRep(), TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), ExtTrackCnv::DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), RootEventBaseCnv::finalize(), TrigCnv::initialize(), RootEventBaseCnv::initialize(), RecTrackCnv::initialize(), McCnv::initialize(), HltCnv::initialize(), EvtRecCnv::initialize(), EvtNavigatorCnv::initialize(), EvtHeaderCnv::initialize(), DstCnv::initialize(), and DigiCnv::initialize().
commonData RecExtTrackCnv::m_common [private] |
relational maps
Definition at line 40 of file RecExtTrackCnv.h.
Referenced by TObjectToDataObject().
std::string RootEventBaseCnv::m_currentFileName [protected, inherited] |
IDataProviderSvc* RootEventBaseCnv::m_eds [protected, inherited] |
pointer to eventdataservice
Definition at line 46 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), ExtTrackCnv::DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), RootEventBaseCnv::RootEventBaseCnv(), and McCnv::TObjectToDataObject().
RootEvtSelector* RootEventBaseCnv::m_evtsel [protected, inherited] |
Definition at line 75 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().
TObjArray* RecExtTrackCnv::m_extTrackCol [private] |
root object to be read
Definition at line 43 of file RecExtTrackCnv.h.
Referenced by DataObjectToTObject(), RecExtTrackCnv(), and TObjectToDataObject().
std::vector<RootCnvSvc::Leaf> RootEventBaseCnv::m_leaves [protected, inherited] |
TObject* RootEventBaseCnv::m_objRead [protected, inherited] |
the object that was read
Definition at line 58 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), RootEventBaseCnv::getReadObject(), and RootEventBaseCnv::RootEventBaseCnv().
std::string RootEventBaseCnv::m_rootBranchname [protected, inherited] |
root branchname (may be concatenated of severals)
Definition at line 67 of file RootEventBaseCnv.h.
Referenced by DigiCnv::DigiCnv(), DstCnv::DstCnv(), DstHltInfCnv::DstHltInfCnv(), EmcDigiCnv::EmcDigiCnv(), EmcMcHitCnv::EmcMcHitCnv(), EmcTrackCnv::EmcTrackCnv(), EvtHeaderCnv::EvtHeaderCnv(), EvtNavigatorCnv::EvtNavigatorCnv(), EvtRecCnv::EvtRecCnv(), EvtRecDTagCnv::EvtRecDTagCnv(), EvtRecEtaToGGCnv::EvtRecEtaToGGCnv(), EvtRecEventCnv::EvtRecEventCnv(), EvtRecPi0Cnv::EvtRecPi0Cnv(), EvtRecPrimaryVertexCnv::EvtRecPrimaryVertexCnv(), EvtRecTrackCnv::EvtRecTrackCnv(), EvtRecVeeVertexCnv::EvtRecVeeVertexCnv(), ExtTrackCnv::ExtTrackCnv(), HltInfCnv::HltInfCnv(), HltRawCnv::HltRawCnv(), LumiDigiCnv::LumiDigiCnv(), McParticleCnv::McParticleCnv(), MdcDedxCnv::MdcDedxCnv(), MdcDigiCnv::MdcDigiCnv(), MdcKalTrackCnv::MdcKalTrackCnv(), MdcMcHitCnv::MdcMcHitCnv(), MdcTrackCnv::MdcTrackCnv(), MucDigiCnv::MucDigiCnv(), MucMcHitCnv::MucMcHitCnv(), MucTrackCnv::MucTrackCnv(), RecBTofCalHitCnv::RecBTofCalHitCnv(), RecEmcClusterCnv::RecEmcClusterCnv(), RecEmcHitCnv::RecEmcHitCnv(), RecEmcShowerCnv::RecEmcShowerCnv(), RecETofCalHitCnv::RecETofCalHitCnv(), RecEvTimeCnv::RecEvTimeCnv(), RecExtTrackCnv(), RecMdcDedxCnv::RecMdcDedxCnv(), RecMdcDedxHitCnv::RecMdcDedxHitCnv(), RecMdcHitCnv::RecMdcHitCnv(), RecMdcKalHelixSegCnv::RecMdcKalHelixSegCnv(), RecMdcKalTrackCnv::RecMdcKalTrackCnv(), RecMdcTrackCnv::RecMdcTrackCnv(), RecMucRecHitCnv::RecMucRecHitCnv(), RecMucTrackCnv::RecMucTrackCnv(), RecTrackCnv::RecTrackCnv(), RecZddChannelCnv::RecZddChannelCnv(), TofDigiCnv::TofDigiCnv(), TofMcHitCnv::TofMcHitCnv(), TofTrackCnv::TofTrackCnv(), and TrigDataCnv::TrigDataCnv().
RootInterface* RootEventBaseCnv::m_rootInterface [protected, inherited] |
pointer to the RootInterface
Definition at line 43 of file RootEventBaseCnv.h.
Referenced by RootEventBaseCnv::createObj(), TrigCnv::DataObjectToTObject(), RecTrackCnv::DataObjectToTObject(), McCnv::DataObjectToTObject(), HltCnv::DataObjectToTObject(), EvtRecCnv::DataObjectToTObject(), EvtNavigatorCnv::DataObjectToTObject(), EvtHeaderCnv::DataObjectToTObject(), DstCnv::DataObjectToTObject(), DigiCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().
std::string RootEventBaseCnv::m_rootTreename [protected, inherited] |
each converter knows it's treename
Definition at line 69 of file RootEventBaseCnv.h.
Referenced by EmcTrackCnv::EmcTrackCnv(), RecEmcHitCnv::RecEmcHitCnv(), and RecMucRecHitCnv::RecMucRecHitCnv().