00001 #ifndef DCCTCCBLOCK_HH 00002 #define DCCTCCBLOCK_HH 00003 00004 /* 00005 *\ Class DCCTCCBlock 00006 * 00007 * Class responsible for the trigger primitives unpacking. 00008 * 00009 * \file DCCTCCBlock.h 00010 * 00011 * $Date: 2009/05/02 19:32:19 $ 00012 * $Revision: 1.12 $ 00013 * 00014 * \author N. Almeida 00015 * 00016 * 00017 */ 00018 00019 #include <iostream> 00020 #include <string> 00021 #include <vector> 00022 #include <map> 00023 #include <utility> 00024 00025 00026 #include <DataFormats/EcalDigi/interface/EcalDigiCollections.h> 00027 #include <DataFormats/EcalDigi/interface/EcalTriggerPrimitiveDigi.h> 00028 #include <DataFormats/EcalDigi/interface/EcalTriggerPrimitiveSample.h> 00029 #include <DataFormats/EcalDetId/interface/EcalTrigTowerDetId.h> 00030 00031 #include "DCCDataBlockPrototype.h" 00032 00033 class DCCDataUnpacker; 00034 00035 class DCCTCCBlock : public DCCDataBlockPrototype { 00036 00037 public : 00041 DCCTCCBlock( DCCDataUnpacker * u, EcalElectronicsMapper * m, DCCEventBlock * e, bool unpack); 00042 00043 virtual void addTriggerPrimitivesToCollection(){}; 00044 00048 int unpack(uint64_t ** data, uint * dwToEnd); 00049 00050 void display(std::ostream & o); 00051 00052 00053 protected : 00054 00055 virtual bool checkTccIdAndNumbTTs(){return true;}; 00056 00057 uint tccId_; 00058 uint bx_; 00059 uint l1_; 00060 uint nTTs_; 00061 uint nTSamples_; 00062 uint expNumbTTs_; 00063 uint expTccId_; 00064 00065 EcalTrigTowerDetId * pTTDetId_; 00066 EcalTriggerPrimitiveDigi * pTP_; 00067 std::auto_ptr<EcalTrigPrimDigiCollection > * tps_; 00068 00069 }; 00070 00071 #endif