Presentation is loading. Please wait.

Presentation is loading. Please wait.

Elliott Wolin Hall D Offline Meeting 6-Apr-2010.  DANA -> EVIO conversion 95% complete  Handles 20 DANA objects plus ID bank  Includes object ID’s.

Similar presentations


Presentation on theme: "Elliott Wolin Hall D Offline Meeting 6-Apr-2010.  DANA -> EVIO conversion 95% complete  Handles 20 DANA objects plus ID bank  Includes object ID’s."— Presentation transcript:

1 Elliott Wolin Hall D Offline Meeting 6-Apr-2010

2  DANA -> EVIO conversion 95% complete  Handles 20 DANA objects plus ID bank  Includes object ID’s for all objects  uint64_t big enough to hold object pointer  Includes tagged factories  Includes associated objects  Includes object ID ↔ name/tag lookup table  Easy to add more DANA objects  User-supplied XML EVIO tag/num dictionary  Everything checked into  /sim-recon/src/programs/Utilities/plugins/danaevio

3  dmctrackhit  dbeamphoton  dmcthrown  dfcaltruthshower  dbcaltruthshower  dtoftruth  dsctruthhit  dmctrajectorypoint  dcdchit  dfdchit  dfcalhit  dhddmbcalhit  dhddmtofhit  dschit  dcdctrackhit  dfdcpseudo  dtrackwirebased  dtracktimebased  dchargedtrack  dphoton

4  Need to change XML tag name

5  Associated Object ID bank NOT included if empty  only 5 objects have associated object banks  Still missing factory name/tag string array  not supported by EVIO yet  Fine for event display development  Dave Heddle’s student will work on this  Next step is EVIO -> DANA conversion  Dave L (with my help)  EVIO format changes unlikely, but possible  Additional uses  Transport events over network  ???

6 Object ID bank X bank Y bank Z bank Bank of arrays of associated object ID’s ID 1X 1Y 1Z 1Array 1 ID 2X 2Y 2Z 2Array 2 ID 3X 3Y 3Z 3Array 3 …………… Note: EVIO stores data ‘column-wise’ (HDDM stores data ‘row-wise’)

7 Object IDFactory name/tag ID1DPhoton ID2DPhoton ID3DPhoton ID4DPhoton:zisis ID5DPhoton:zisis ID6DPhoton:matt ID7DPhoton:matt ID8DMCTrackHit ……

8 void DDANAEVIO_factory::addDSCHit(JEventLoop *eventLoop, evioDOMTree &tree) { // create bank and add to event tree evioDOMNodeP schit = createContainerNode("DSCHit"); tree << schit; // create data banks and add to bank evioDOMNodeP objIdBank = createLeafNode ("DSCHit.objId"); evioDOMNodeP dEBank = createLeafNode ("DSCHit.dE"); evioDOMNodeP tBank = createLeafNode ("DSCHit.t"); evioDOMNodeP sectorBank = createLeafNode ("DSCHit.sector"); *schit << objIdBank << dEBank << tBank << sectorBank; // create associated object bank and add to main bank evioDOMNodeP assocBank = createContainerNode("DSCHit.assocObjectBanks"); *schit << assocBank; // loop over each requested factory int assocCount = 0; set ::iterator iter; for(iter=evioMap["dschit"].begin(); iter!=evioMap["dschit"].end(); iter++) { // is there any data vector schits; eventLoop->Get(schits); if(schits.size()<=0)continue;

9 // add track data to banks for(unsigned int i=0; i<schits.size(); i++) { *objIdBank id; *dEBank dE; *tBank t; *sectorBank sector; objIdMap[schits[i]->id]="???"; // get associated object id bank and add to associated object bank evioDOMNodeP assocObjs = createLeafNode ("DSCHit.assocObjects"); *assocBank << assocObjs; // get id's, add to id bank and to global object id map vector objs; schits[i]->GetT(objs); for(unsigned int j=0; j<objs.size(); j++) { assocCount++; *assocObjs id; objIdMap[objs[j]->id]="???"; } if(assocCount==0)assocBank->cutAndDelete(); }


Download ppt "Elliott Wolin Hall D Offline Meeting 6-Apr-2010.  DANA -> EVIO conversion 95% complete  Handles 20 DANA objects plus ID bank  Includes object ID’s."

Similar presentations


Ads by Google