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: 2012/08/06 21:51:35 $ 00012 * $Revision: 1.3 $ 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/EcalPseudoStripInputDigi.h> 00029 #include <DataFormats/EcalDigi/interface/EcalTriggerPrimitiveSample.h> 00030 #include <DataFormats/EcalDetId/interface/EcalTrigTowerDetId.h> 00031 00032 #include "DCCDataBlockPrototype.h" 00033 00034 class DCCDataUnpacker; 00035 00036 class DCCTCCBlock : public DCCDataBlockPrototype { 00037 00038 public : 00042 DCCTCCBlock( DCCDataUnpacker * u, EcalElectronicsMapper * m, DCCEventBlock * e, bool unpack); 00043 00044 virtual void addTriggerPrimitivesToCollection(){}; 00045 00049 int unpack(const uint64_t ** data, unsigned int * dwToEnd, short tccChId=0); 00050 00051 void display(std::ostream & o); 00052 00053 00054 protected : 00055 00056 virtual bool checkTccIdAndNumbTTs(){return true;}; 00057 00058 unsigned int tccId_; 00059 unsigned int bx_; 00060 unsigned int l1_; 00061 unsigned int nTTs_; 00062 unsigned int nTSamples_; 00063 unsigned int expNumbTTs_; 00064 unsigned int expTccId_; 00065 unsigned int ps_; 00066 00067 EcalTrigTowerDetId * pTTDetId_; 00068 EcalTriggerPrimitiveDigi * pTP_; 00069 EcalPseudoStripInputDigi * pPS_; 00070 std::auto_ptr<EcalTrigPrimDigiCollection> * tps_; 00071 std::auto_ptr<EcalPSInputDigiCollection> * pss_; 00072 00073 }; 00074 00075 #endif