![]() |
![]() |
#include <Calibration/HcalIsolatedTrackReco/interface/SubdetFEDSelector.h>
Public Member Functions | |
SubdetFEDSelector (const edm::ParameterSet &) | |
~SubdetFEDSelector () | |
Public Attributes | |
bool | getEcal_ |
bool | getHcal_ |
bool | getMuon_ |
bool | getPixel_ |
bool | getStrip_ |
bool | getTrigger_ |
edm::InputTag | rawInLabel_ |
Private Member Functions | |
virtual void | beginJob (const edm::EventSetup &) |
virtual void | endJob () |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
Definition at line 20 of file SubdetFEDSelector.h.
SubdetFEDSelector::SubdetFEDSelector | ( | const edm::ParameterSet & | iConfig | ) |
Definition at line 4 of file SubdetFEDSelector.cc.
References getEcal_, getHcal_, getMuon_, edm::ParameterSet::getParameter(), getPixel_, getStrip_, getTrigger_, and rawInLabel_.
00005 { 00006 getEcal_=iConfig.getParameter<bool>("getECAL"); 00007 getStrip_=iConfig.getParameter<bool>("getSiStrip"); 00008 getPixel_=iConfig.getParameter<bool>("getSiPixel"); 00009 getHcal_=iConfig.getParameter<bool>("getHCAL"); 00010 getMuon_=iConfig.getParameter<bool>("getMuon"); 00011 getTrigger_=iConfig.getParameter<bool>("getTrigger"); 00012 00013 rawInLabel_=iConfig.getParameter<edm::InputTag>("rawInputLabel"); 00014 00015 produces<FEDRawDataCollection>(); 00016 00017 }
SubdetFEDSelector::~SubdetFEDSelector | ( | ) |
void SubdetFEDSelector::beginJob | ( | const edm::EventSetup & | ) | [private, virtual] |
void SubdetFEDSelector::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 24 of file SubdetFEDSelector.cc.
References FEDRawData::data(), data, FEDRawDataCollection::FEDData(), first, edm::Event::getByLabel(), FEDNumbering::getCSCContingencyFEDIds(), FEDNumbering::getCSCDDUFEDIds(), FEDNumbering::getCSCFEDIds(), FEDNumbering::getCSCTFFEDIds(), FEDNumbering::getCSCTFSPFEDIds(), FEDNumbering::getDAQeFEDFEDIds(), FEDNumbering::getDTFEDIds(), FEDNumbering::getDTTFFEDIds(), getEcal_, FEDNumbering::getEcalFEDIds(), getHcal_, FEDNumbering::getHcalFEDIds(), getMuon_, getPixel_, FEDNumbering::getPreShowerFEDIds(), FEDNumbering::getRPCFEDIds(), FEDNumbering::getSiPixelFEDIds(), FEDNumbering::getSiStripFEDIds(), getStrip_, getTrigger_, FEDNumbering::getTriggerEGTPFEDIds(), FEDNumbering::getTriggerGCTFEDIds(), FEDNumbering::getTriggerGTPFEDIds(), FEDNumbering::getTriggerLTCCSCFEDID(), FEDNumbering::getTriggerLTCDTFEDID(), FEDNumbering::getTriggerLTCECALFEDID(), FEDNumbering::getTriggerLTCFEDIds(), FEDNumbering::getTriggerLTCHCALFEDID(), FEDNumbering::getTriggerLTCmtccFEDIds(), FEDNumbering::getTriggerLTCRPCFEDID(), FEDNumbering::getTriggerLTCSiPixelFEDID(), FEDNumbering::getTriggerLTCSiStripFEDID(), FEDNumbering::getTriggerLTCTotemCastorFEDID(), FEDNumbering::getTriggerLTCTriggerFEDID(), i, j, k, FEDNumbering::lastFEDId(), edm::Handle< T >::product(), edm::Event::put(), rawInLabel_, FEDRawData::resize(), FEDRawData::size(), and size.
00025 { 00026 00027 std::auto_ptr<FEDRawDataCollection> producedData(new FEDRawDataCollection); 00028 00029 edm::Handle<FEDRawDataCollection> rawIn; 00030 iEvent.getByLabel(rawInLabel_,rawIn); 00031 00032 std::vector<int> selFEDs; 00033 00034 if (getEcal_) 00035 { 00036 for (int i=FEDNumbering::getEcalFEDIds().first; i<=FEDNumbering::getEcalFEDIds().second; i++) 00037 { 00038 selFEDs.push_back(i); 00039 } 00040 for (int i=FEDNumbering::getPreShowerFEDIds().first; i<=FEDNumbering::getPreShowerFEDIds().second; i++) 00041 { 00042 selFEDs.push_back(i); 00043 } 00044 } 00045 00046 if (getMuon_) 00047 { 00048 for (int i=FEDNumbering::getCSCFEDIds().first; i<=FEDNumbering::getCSCFEDIds().second; i++) 00049 { 00050 selFEDs.push_back(i); 00051 } 00052 for (int i=FEDNumbering::getCSCTFFEDIds().first; i<=FEDNumbering::getCSCTFFEDIds().second; i++) 00053 { 00054 selFEDs.push_back(i); 00055 } 00056 for (int i=FEDNumbering::getDTFEDIds().first; i<=FEDNumbering::getDTFEDIds().second; i++) 00057 { 00058 selFEDs.push_back(i); 00059 } 00060 for (int i=FEDNumbering::getDTTFFEDIds().first; i<=FEDNumbering::getDTTFFEDIds().second; i++) 00061 { 00062 selFEDs.push_back(i); 00063 } 00064 for (int i=FEDNumbering::getRPCFEDIds().first; i<=FEDNumbering::getRPCFEDIds().second; i++) 00065 { 00066 selFEDs.push_back(i); 00067 } 00068 for (int i=FEDNumbering::getCSCDDUFEDIds().first; i<=FEDNumbering::getCSCDDUFEDIds().second; i++) 00069 { 00070 selFEDs.push_back(i); 00071 } 00072 for (int i=FEDNumbering::getCSCContingencyFEDIds().first; i<=FEDNumbering::getCSCContingencyFEDIds().second; i++) 00073 { 00074 selFEDs.push_back(i); 00075 } 00076 for (int i=FEDNumbering::getCSCTFSPFEDIds().first; i<=FEDNumbering::getCSCTFSPFEDIds().second; i++) 00077 { 00078 selFEDs.push_back(i); 00079 } 00080 } 00081 00082 00083 if (getHcal_) 00084 { 00085 for (int i=FEDNumbering::getHcalFEDIds().first; i<=FEDNumbering::getHcalFEDIds().second; i++) 00086 { 00087 selFEDs.push_back(i); 00088 } 00089 } 00090 00091 00092 if (getStrip_) 00093 { 00094 for (int i=FEDNumbering::getSiStripFEDIds().first; i<=FEDNumbering::getSiStripFEDIds().second; i++) 00095 { 00096 selFEDs.push_back(i); 00097 } 00098 } 00099 00100 00101 if (getPixel_) 00102 { 00103 for (int i=FEDNumbering::getSiPixelFEDIds().first; i<=FEDNumbering::getSiPixelFEDIds().second; i++) 00104 { 00105 selFEDs.push_back(i); 00106 } 00107 } 00108 00109 if (getTrigger_) 00110 { 00111 for (int i=FEDNumbering::getTriggerEGTPFEDIds().first; i<=FEDNumbering::getTriggerEGTPFEDIds().second; i++) 00112 { 00113 selFEDs.push_back(i); 00114 } 00115 for (int i=FEDNumbering::getTriggerGTPFEDIds().first; i<=FEDNumbering::getTriggerGTPFEDIds().second; i++) 00116 { 00117 selFEDs.push_back(i); 00118 } 00119 for (int i=FEDNumbering::getTriggerLTCFEDIds().first; i<=FEDNumbering::getTriggerLTCFEDIds().second; i++) 00120 { 00121 selFEDs.push_back(i); 00122 } 00123 for (int i=FEDNumbering::getTriggerLTCmtccFEDIds().first; i<=FEDNumbering::getTriggerLTCmtccFEDIds().second; i++) 00124 { 00125 selFEDs.push_back(i); 00126 } 00127 for (int i=FEDNumbering::getTriggerGCTFEDIds().first; i<=FEDNumbering::getTriggerGCTFEDIds().second; i++) 00128 { 00129 selFEDs.push_back(i); 00130 } 00131 00132 for (int i=FEDNumbering::getTriggerLTCTriggerFEDID().first; i<=FEDNumbering::getTriggerLTCTriggerFEDID().second; i++) 00133 { 00134 selFEDs.push_back(i); 00135 } 00136 00137 for (int i=FEDNumbering::getTriggerLTCHCALFEDID().first; i<=FEDNumbering::getTriggerLTCHCALFEDID().second; i++) 00138 { 00139 selFEDs.push_back(i); 00140 } 00141 00142 for (int i=FEDNumbering::getTriggerLTCSiStripFEDID().first; i<=FEDNumbering::getTriggerLTCSiStripFEDID().second; i++) 00143 { 00144 selFEDs.push_back(i); 00145 } 00146 00147 for (int i=FEDNumbering::getTriggerLTCECALFEDID().first; i<=FEDNumbering::getTriggerLTCECALFEDID().second; i++) 00148 { 00149 selFEDs.push_back(i); 00150 } 00151 00152 for (int i=FEDNumbering::getTriggerLTCTotemCastorFEDID().first; i<=FEDNumbering::getTriggerLTCTotemCastorFEDID().second; i++) 00153 { 00154 selFEDs.push_back(i); 00155 } 00156 for (int i=FEDNumbering::getTriggerLTCRPCFEDID().first; i<=FEDNumbering::getTriggerLTCRPCFEDID().second; i++) 00157 { 00158 selFEDs.push_back(i); 00159 } 00160 00161 for (int i=FEDNumbering::getTriggerLTCCSCFEDID().first; i<=FEDNumbering::getTriggerLTCCSCFEDID().second; i++) 00162 { 00163 selFEDs.push_back(i); 00164 } 00165 for (int i=FEDNumbering::getTriggerLTCDTFEDID().first; i<=FEDNumbering::getTriggerLTCDTFEDID().second; i++) 00166 { 00167 selFEDs.push_back(i); 00168 } 00169 for (int i=FEDNumbering::getTriggerLTCSiPixelFEDID().first; i<=FEDNumbering::getTriggerLTCSiPixelFEDID().second; i++) 00170 { 00171 selFEDs.push_back(i); 00172 } 00173 00174 } 00175 00176 for (int i=FEDNumbering::getDAQeFEDFEDIds().first; i<=FEDNumbering::getDAQeFEDFEDIds().second; i++) 00177 { 00178 selFEDs.push_back(i); 00179 } 00180 00181 00182 // Copying: 00183 const FEDRawDataCollection *rdc=rawIn.product(); 00184 00185 // if ( ( rawData[i].provenance()->processName() != e.processHistory().rbegin()->processName() ) ) 00186 // continue ; // skip all raw collections not produced by the current process 00187 00188 for ( int j=0; j< FEDNumbering::lastFEDId(); ++j ) 00189 { 00190 bool rightFED=false; 00191 for (uint32_t k=0; k<selFEDs.size(); k++) 00192 { 00193 if (j==selFEDs[k]) 00194 { 00195 rightFED=true; 00196 } 00197 } 00198 if (!rightFED) continue; 00199 const FEDRawData & fedData = rdc->FEDData(j); 00200 size_t size=fedData.size(); 00201 00202 if ( size > 0 ) 00203 { 00204 // this fed has data -- lets copy it 00205 FEDRawData & fedDataProd = producedData->FEDData(j); 00206 if ( fedDataProd.size() != 0 ) { 00207 // std::cout << " More than one FEDRawDataCollection with data in FED "; 00208 // std::cout << j << " Skipping the 2nd\n"; 00209 continue; 00210 } 00211 fedDataProd.resize(size); 00212 unsigned char *dataProd=fedDataProd.data(); 00213 const unsigned char *data=fedData.data(); 00214 for ( unsigned int k=0; k<size; ++k ) { 00215 dataProd[k]=data[k]; 00216 } 00217 } 00218 } 00219 00220 iEvent.put(producedData); 00221 00222 }
Definition at line 25 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 26 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 29 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 28 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 27 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 30 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().
Definition at line 32 of file SubdetFEDSelector.h.
Referenced by produce(), and SubdetFEDSelector().