#include #include #include #include #include #include #include #include #include #include Int_t StntupleUnpackTL1DBank(TRYBOS_BANK* bank, TTl1d* tl1d); //_____________________________________________________________________________ Int_t StntupleInitTrigSimBlock(TStnDataBlock* block, AbsEvent* Evt, int mode) { // assume that the trig sim data are created by "MC" process // return -1, if bank doesn't exist, 0, if everything is OK // ** no, I don't know yet how this block should look like, // leave it dummy for the moment // TTl3d* tl3d; TStnTriggerBlock* trig_block = (TStnTriggerBlock*) block; trig_block->Clear(); EventRecord::ConstIterator ci; //----------------------------------------------------------------------------- // TFRD //----------------------------------------------------------------------------- ci = StntupleGetIterator(Evt,"TFRD_StorableBank","","Simulated Trigger Bank"); if (ci.is_valid()) { TRYBOS_BANK* tfrd = (TRYBOS_BANK*) ci.operator->(); memcpy(trig_block->Tfrd()->Data(),tfrd->data()+6,11*sizeof(int)); } //----------------------------------------------------------------------------- // simulated TL1D //----------------------------------------------------------------------------- ci = StntupleGetIterator(Evt,"TL1D_StorableBank","","Simulated Trigger Bank"); if (ci.is_valid()) { TRYBOS_BANK* tl1d = (TRYBOS_BANK*) ci.operator->(); StntupleUnpackTL1DBank(tl1d,trig_block->Tl1d()); } //----------------------------------------------------------------------------- // simulated TL2D //----------------------------------------------------------------------------- ci = StntupleGetIterator(Evt,"TL2D_StorableBank","","Simulated Trigger Bank"); if (ci.is_valid()) { TRYBOS_BANK* tl2d = (TRYBOS_BANK*) ci.operator->(); TStnArrayI* data = trig_block->Tl2d()->Data(); int nw = tl2d->data_size()-3; // assuming 'data' is empty data->Append(tl2d->data()+3,nw); } //----------------------------------------------------------------------------- // simulated TL2D //----------------------------------------------------------------------------- ci = StntupleGetIterator(Evt,"TCMD_StorableBank","","Simulated Trigger Bank"); if (ci.is_valid()) { TRYBOS_BANK* tcmd = (TRYBOS_BANK*) ci.operator->(); TStnArrayI* data = trig_block->Tcmd()->Data(); int nw = tcmd->data_size()-3; // assuming 'data' is empty data->Append(tcmd->data()+3,nw); } return 0; }