#include "Stntuple/run1/StnRun1InitDataBlocks.hh" #include "Stntuple/run1/TStnRun1Event.hh" #include "Stntuple/obj/TStnTrack.hh" #include "Stntuple/obj/TStnTrackBlock.hh" //_____________________________________________________________________________ Int_t StnRun1InitTrack(TStnTrack* Track, StnTrackBlock_t* R1Trk, Int_t I) { // init track object from a UC standard Ntuple Track->fMomentum.SetXYZT(R1Trk->trp4[I][0],R1Trk->trp4[I][0], R1Trk->trp4[I][0],R1Trk->trp4[I][0]); Track->fVind = R1Trk->trvind[I]; Track->fSvxHitWord = R1Trk->trnsvx[I]; int seg = ((R1Trk->trnssl[I] << 4) + R1Trk->trnasl[I]) & 0xff; Track->fCotHitWord = ( ( seg << 24) ); Track->fCot = R1Trk->trcot[I]; // cot(theta) of track Track->fCurv = R1Trk->trcurv[I]; Track->fZ0 = R1Trk->trz0[I]; // z_0 of track Track->fD0 = R1Trk->trd0[I]; Track->fPhi0 = R1Trk->trphi0[I]; Track->fPt = R1Trk->trpt[I]; Track->fEta = R1Trk->treta[I]; Track->fExeta = R1Trk->trexeta[I]; Track->fExphi = R1Trk->trexphi[I]; Track->fBcvind = R1Trk->trbcvind[I]; Track->fBcz0 = R1Trk->trbcz0[I]; // beam-constrained parameters Track->fBcd0 = R1Trk->trbcd0[I]; Track->fBcq = R1Trk->trbcq[I]; memcpy(Track->fBcp4,R1Trk->trbcp4[I],4*sizeof(float)); Track->fBcpt = R1Trk->trbcpt[I]; Track->fBceta = R1Trk->trbceta[I]; Track->fIso4 = R1Trk->triso4[I]; // fUd0 = R1Trk->utd0[I]; // D0 with respect to the beam axis // fUiso4 = R1Trk->utiso4[I]; // iso as returned by top/tkiso.F return 0; } //_____________________________________________________________________________ int StnRun1InitTrackBlock(TStnDataBlock* Block, TStnEvent* Event, int Mode) { // initialize track data block starting from Run1 UC Stntuple TStnRun1Event* event = (TStnRun1Event*) Event; TStnTrackBlock* blk = (TStnTrackBlock*) Block; blk->Clear(); StnTrackBlock_t* r1trk = event->TrackBlock(); for (int i=0; intr; i++) { TStnTrack* track = blk->NewTrack(); StnRun1InitTrack(track,r1trk,i); } return 0; }