CMS 3D CMS Logo

SubdetFEDSelector Class Reference

#include <Calibration/HcalIsolatedTrackReco/interface/SubdetFEDSelector.h>

Inheritance diagram for SubdetFEDSelector:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

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 &)


Detailed Description

Definition at line 20 of file SubdetFEDSelector.h.


Constructor & Destructor Documentation

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 (  ) 

Definition at line 19 of file SubdetFEDSelector.cc.

00020 {
00021 }


Member Function Documentation

void SubdetFEDSelector::beginJob ( const edm::EventSetup  )  [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 226 of file SubdetFEDSelector.cc.

00227 {
00228 }

void SubdetFEDSelector::endJob ( void   )  [private, virtual]

Reimplemented from edm::EDProducer.

Definition at line 231 of file SubdetFEDSelector.cc.

00231                                {
00232 }

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 }


Member Data Documentation

bool SubdetFEDSelector::getEcal_

Definition at line 25 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

bool SubdetFEDSelector::getHcal_

Definition at line 26 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

bool SubdetFEDSelector::getMuon_

Definition at line 29 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

bool SubdetFEDSelector::getPixel_

Definition at line 28 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

bool SubdetFEDSelector::getStrip_

Definition at line 27 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

bool SubdetFEDSelector::getTrigger_

Definition at line 30 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().

edm::InputTag SubdetFEDSelector::rawInLabel_

Definition at line 32 of file SubdetFEDSelector.h.

Referenced by produce(), and SubdetFEDSelector().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:56 2009 for CMSSW by  doxygen 1.5.4