/////////////////////////////////////////////////////////////////////////////// // description of CMX RAW data block /////////////////////////////////////////////////////////////////////////////// #include #include #include #include "StorableBanks/ConstGrandBankIterTDC.hh" #include "StorableBanks/ConstBankIterTDC.hh" #include "RawDataBanks/CMXD_StorableBank.hh" #include #include #include //_____________________________________________________________________________ Int_t StntupleInitCmxDataBlock(TStnDataBlock* block, AbsEvent* event, int mode) { // initialize CMX data block with the `event' data, `mode' is not used so far int ierror, ev_number, rn_number; // check if block has already been // initialized ev_number = AbsEnv::instance()->trigNumber(); rn_number = AbsEnv::instance()->runNumber(); if (block->Initialized(ev_number,rn_number)) return 0; TCmxDataBlock* data = (TCmxDataBlock*) block; data->Clear(); // Loop over the hits in the D bank EventRecord::ConstIterator cmxd_iter(event, "CMXD_StorableBank"); ConstHandle handle(cmxd_iter); const CMXD_StorableBank* cmxd = handle.operator->(); for (ConstGrandBankIterTDC dhit(handle); dhit.is_valid(); ++dhit) { TCmxdHit* hit = data->NewDHit(); cmxd->get_geometric_indices(dhit, hit->fSideNumber, hit->fWedgeNumber, hit->fLayerNumber, hit->fWireNumber, ierror); hit->fLeadingEdge = cmxd->get_start(dhit); hit->fWidth = cmxd->get_width(dhit); } // set event and run numbers data->f_RunNumber = ev_number; data->f_EventNumber = rn_number; return 0; }