//_____________________________________________________________________________ // initializa PES data block starting from PESD bank // Jul 12 2001 P.Murat: it turned out that strip numbers in PESD vary from // 1 to 200 - fix teh accessors //_____________________________________________________________________________ #include #include #include #include #include #include #include #include //_____________________________________________________________________________ Int_t StntupleInitPesDataBlock(TStnDataBlock* block, AbsEvent* event, int mode) { // initialize PES data block with the `event' data // return -1, if bank doesn't exist, 0, if everything is OK Int_t rc = 0; TPesDataBlock* data = (TPesDataBlock*) block; data->Clear(); EventRecord::ConstIterator iter(event, "PESD_StorableBank"); if (! iter.is_valid()) return -1; ConstHandle pesd(iter); int wedge, side, layer, strip; for (PESD_StorableBank::ConstBankIter blk(pesd); blk.is_valid(); ++blk) { for (PESD_StorableBank::ConstBlockIter ch(blk); ch.is_valid(); ++ch) { wedge = pesd->get_phi(ch); side = pesd->get_we (ch); layer = pesd->get_layer(ch); strip = pesd->get_strip(ch)-1; if ( (wedge < 0) || (wedge > 7) || (side < 0) || (side > 1) || (layer < 0) || (layer > 1) || (strip < 0) || (strip > 199) ) { // corrupted data printf(" *** corrupted PES data: side, wedge, layer, strip ="); printf(" %i %i %i %i\n",side, wedge, layer, strip); rc = -2; return rc; } else { data->fAdcCounts[side][wedge][layer][strip] = pesd->get_data(ch); data->fNStrips [side][wedge][layer]++; } } } return rc; }