Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-08-05 22:48:40

0001 // system include files
0002 #include <vector>
0003 
0004 // user include files
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0007 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0008 #include "FWCore/Utilities/interface/EDGetToken.h"
0009 #include "FWCore/Utilities/interface/InputTag.h"
0010 #include "DataFormats/Common/interface/Handle.h"
0011 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0012 
0013 #include "FWCore/Framework/interface/Event.h"
0014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0015 
0016 #include "DataFormats/Common/interface/DetSetVector.h"
0017 // ecal calorimeter info
0018 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0019 // hcal calorimeter info
0020 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0021 // silicon strip info
0022 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
0023 // silicon pixel info
0024 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0025 // muon DT info
0026 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0027 // muon CSC Strip info
0028 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
0029 // muon CSC Wire info
0030 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
0031 // muon RPC info
0032 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0033 // BTL/ETL info
0034 #include "DataFormats/FTLDigi/interface/FTLDigiCollections.h"
0035 
0036 #include "FWCore/Framework/interface/MakerMacros.h"
0037 
0038 class SimDigiDumper : public edm::one::EDAnalyzer<> {
0039 public:
0040   explicit SimDigiDumper(const edm::ParameterSet&);
0041   virtual ~SimDigiDumper(){};
0042 
0043   virtual void analyze(const edm::Event&, const edm::EventSetup&);
0044   virtual void beginJob(){};
0045   virtual void endJob(){};
0046 
0047   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0048 
0049 private:
0050   edm::EDGetTokenT<EBDigiCollection> ECalEBSrc_;
0051   edm::EDGetTokenT<EEDigiCollection> ECalEESrc_;
0052   edm::EDGetTokenT<ESDigiCollection> ECalESSrc_;
0053 
0054   edm::EDGetTokenT<HBHEDigiCollection> HCalSrc_;
0055   edm::EDGetTokenT<HODigiCollection> HCalHOSrc_;
0056   edm::EDGetTokenT<HFDigiCollection> HCalHFSrc_;
0057 
0058   edm::EDGetTokenT<ZDCDigiCollection> ZdcSrc_;
0059 
0060   edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > SiStripSrc_;
0061 
0062   edm::EDGetTokenT<edm::DetSetVector<PixelDigi> > SiPxlSrc_;
0063 
0064   edm::EDGetTokenT<DTDigiCollection> MuDTSrc_;
0065 
0066   edm::EDGetTokenT<CSCStripDigiCollection> MuCSCStripSrc_;
0067 
0068   edm::EDGetTokenT<CSCWireDigiCollection> MuCSCWireSrc_;
0069 
0070   edm::EDGetTokenT<RPCDigiCollection> MuRPCSrc_;
0071 
0072   edm::EDGetTokenT<BTLDigiCollection> BTLSrc_;
0073   edm::EDGetTokenT<ETLDigiCollection> ETLSrc_;
0074 
0075   static const int sdSiTIB = 3;
0076   static const int sdSiTID = 4;
0077   static const int sdSiTOB = 5;
0078   static const int sdSiTEC = 6;
0079   static const int sdPxlBrl = 1;
0080   static const int sdPxlFwd = 2;
0081 };
0082 
0083 SimDigiDumper::SimDigiDumper(const edm::ParameterSet& iPSet) {
0084   //get Labels to use to extract information
0085   ECalEBSrc_ = consumes<EBDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
0086   ECalEESrc_ = consumes<EEDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
0087   ECalESSrc_ = consumes<ESDigiCollection>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
0088   HCalSrc_ = consumes<HBHEDigiCollection>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
0089   HCalHOSrc_ = consumes<HODigiCollection>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
0090   HCalHFSrc_ = consumes<HFDigiCollection>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
0091   ZdcSrc_ = consumes<ZDCDigiCollection>(iPSet.getParameter<edm::InputTag>("ZdcSrc"));
0092   SiStripSrc_ = consumes<edm::DetSetVector<SiStripDigi> >(iPSet.getParameter<edm::InputTag>("SiStripSrc"));
0093   SiPxlSrc_ = consumes<edm::DetSetVector<PixelDigi> >(iPSet.getParameter<edm::InputTag>("SiPxlSrc"));
0094   MuDTSrc_ = consumes<DTDigiCollection>(iPSet.getParameter<edm::InputTag>("MuDTSrc"));
0095   MuCSCStripSrc_ = consumes<CSCStripDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCStripSrc"));
0096   MuCSCWireSrc_ = consumes<CSCWireDigiCollection>(iPSet.getParameter<edm::InputTag>("MuCSCWireSrc"));
0097   MuRPCSrc_ = consumes<RPCDigiCollection>(iPSet.getParameter<edm::InputTag>("MuRPCSrc"));
0098   BTLSrc_ = consumes<BTLDigiCollection>(iPSet.getParameter<edm::InputTag>("BTLSrc"));
0099   ETLSrc_ = consumes<ETLDigiCollection>(iPSet.getParameter<edm::InputTag>("ETLSrc"));
0100 }
0101 
0102 //
0103 // member functions
0104 //
0105 
0106 // ------------ method called to produce the data  ------------
0107 void SimDigiDumper::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0108   using namespace edm;
0109 
0110   // ECAL Barrel
0111 
0112   bool isBarrel = true;
0113   const EBDigiCollection* EBdigis = 0;
0114   auto EcalDigiEB = iEvent.getHandle(ECalEBSrc_);
0115   if (!EcalDigiEB.isValid()) {
0116     edm::LogPrint("SimDigiDumper") << "Unable to find EcalDigiEB in event!";
0117   } else {
0118     EBdigis = EcalDigiEB.product();
0119     if (EcalDigiEB->size() == 0)
0120       isBarrel = false;
0121     edm::LogPrint("SimDigiDumper") << "Ecal Barrel, digi multiplicity = " << EcalDigiEB->size();
0122 
0123     if (isBarrel) {
0124       // loop over digis
0125       for (unsigned int digis = 0; digis < EcalDigiEB->size(); ++digis) {
0126         EBDataFrame ebdf = (*EBdigis)[digis];
0127         edm::LogPrint("SimDigiDumper") << ebdf;
0128       }
0129     }
0130   }
0131 
0132   // ECAL Endcap
0133   bool isEndcap = true;
0134   const EEDigiCollection* EEdigis = 0;
0135   auto EcalDigiEE = iEvent.getHandle(ECalEESrc_);
0136   if (!EcalDigiEE.isValid()) {
0137     edm::LogPrint("SimDigiDumper") << "Unable to find EcalDigiEE in event!";
0138   } else {
0139     EEdigis = EcalDigiEE.product();
0140     if (EcalDigiEE->size() == 0)
0141       isEndcap = false;
0142     edm::LogPrint("SimDigiDumper") << "Ecal Endcap, digi multiplicity = " << EcalDigiEE->size();
0143 
0144     if (isEndcap) {
0145       // loop over digis
0146       for (unsigned int digis = 0; digis < EcalDigiEE->size(); ++digis) {
0147         EEDataFrame eedf = (*EEdigis)[digis];
0148         edm::LogPrint("SimDigiDumper") << eedf;
0149       }
0150     }
0151   }
0152 
0153   // ECAL Preshower
0154   bool isPreshower = true;
0155   const ESDigiCollection* ESdigis = 0;
0156   auto EcalDigiES = iEvent.getHandle(ECalESSrc_);
0157   if (!EcalDigiES.isValid()) {
0158     edm::LogPrint("SimDigiDumper") << "Unable to find EcalDigiES in event!";
0159   } else {
0160     ESdigis = EcalDigiES.product();
0161     if (EcalDigiES->size() == 0)
0162       isPreshower = false;
0163     edm::LogPrint("SimDigiDumper") << "Ecal Preshower, digi multiplicity = " << EcalDigiES->size();
0164 
0165     if (isPreshower) {
0166       // loop over digis
0167       for (unsigned int digis = 0; digis < EcalDigiES->size(); ++digis) {
0168         ESDataFrame esdf = (*ESdigis)[digis];
0169         edm::LogPrint("SimDigiDumper") << esdf;
0170       }
0171     }
0172   }
0173 
0174   // HBHE
0175   bool isHBHE = true;
0176   const HBHEDigiCollection* HBHEdigis = 0;
0177   auto hbhe = iEvent.getHandle(HCalSrc_);
0178   if (!hbhe.isValid()) {
0179     edm::LogPrint("SimDigiDumper") << "Unable to find HBHEDataFrame in event!";
0180   } else {
0181     HBHEdigis = hbhe.product();
0182     if (hbhe->size() == 0)
0183       isHBHE = false;
0184     edm::LogPrint("SimDigiDumper") << "HBHE, digi multiplicity = " << hbhe->size();
0185 
0186     if (isHBHE) {
0187       //loop over digis
0188       for (unsigned int digis = 0; digis < hbhe->size(); ++digis) {
0189         HBHEDataFrame hehbdf = (*HBHEdigis)[digis];
0190         edm::LogPrint("SimDigiDumper") << hehbdf;
0191         //edm::SortedCollection<HBHEDataFrame>::const_iterator ihbhe;
0192         //for  (ihbhe == hbhe->begin(); ihbhe != hbhe->end(); ihbhe++) {
0193         //edm::LogPrint("SimDigiDumper") << "Nothing" ;
0194         //edm::LogPrint("SimDigiDumper") << (*ihbhe) ;
0195       }
0196     }
0197   }
0198 
0199   // HO
0200   bool isHO = true;
0201   const HODigiCollection* HOdigis = 0;
0202   auto ho = iEvent.getHandle(HCalHOSrc_);
0203   if (!ho.isValid()) {
0204     edm::LogPrint("SimDigiDumper") << "Unable to find HODataFrame in event!";
0205   } else {
0206     HOdigis = ho.product();
0207     if (ho->size() == 0)
0208       isHO = false;
0209     edm::LogPrint("SimDigiDumper") << "HO, digi multiplicity = " << ho->size();
0210 
0211     if (isHO) {
0212       //loop over digis
0213       for (unsigned int digis = 0; digis < ho->size(); ++digis) {
0214         HODataFrame hodf = (*HOdigis)[digis];
0215         edm::LogPrint("SimDigiDumper") << hodf;
0216       }
0217     }
0218   }
0219 
0220   // HF
0221   bool isHF = true;
0222   const HFDigiCollection* HFdigis = 0;
0223   auto hf = iEvent.getHandle(HCalHFSrc_);
0224   if (!hf.isValid()) {
0225     edm::LogPrint("SimDigiDumper") << "Unable to find HFDataFrame in event!";
0226   } else {
0227     HFdigis = hf.product();
0228     if (hf->size() == 0)
0229       isHF = false;
0230     edm::LogPrint("SimDigiDumper") << "HF, digi multiplicity = " << hf->size();
0231 
0232     if (isHF) {
0233       //loop over digis
0234       for (unsigned int digis = 0; digis < hf->size(); ++digis) {
0235         HFDataFrame hodf = (*HFdigis)[digis];
0236         edm::LogPrint("SimDigiDumper") << hodf;
0237       }
0238     }
0239   }
0240 
0241   // ZDC
0242   bool isZDC = true;
0243   const ZDCDigiCollection* ZDCdigis = 0;
0244   auto zdc = iEvent.getHandle(ZdcSrc_);
0245   if (!zdc.isValid()) {
0246     edm::LogPrint("SimDigiDumper") << "Unable to find ZDCDataFrame in event!";
0247   } else {
0248     ZDCdigis = zdc.product();
0249     if (zdc->size() == 0)
0250       isZDC = false;
0251     edm::LogPrint("SimDigiDumper") << "ZDC, digi multiplicity = " << zdc->size();
0252 
0253     if (isZDC) {
0254       //loop over digis
0255       for (unsigned int digis = 0; digis < zdc->size(); ++digis) {
0256         ZDCDataFrame hodf = (*ZDCdigis)[digis];
0257         edm::LogPrint("SimDigiDumper") << hodf;
0258       }
0259     }
0260   }
0261 
0262   // Strip Tracker
0263   bool isStrip = true;
0264   auto stripDigis = iEvent.getHandle(SiStripSrc_);
0265   if (!stripDigis.isValid()) {
0266     edm::LogPrint("SimDigiDumper") << "Unable to find stripDigis in event!";
0267   } else {
0268     if (stripDigis->size() == 0)
0269       isStrip = false;
0270     edm::LogPrint("SimDigiDumper") << "Strip Tracker, digi multiplicity = " << stripDigis->size();
0271     if (isStrip) {
0272       edm::DetSetVector<SiStripDigi>::const_iterator DSViter;
0273       for (DSViter = stripDigis->begin(); DSViter != stripDigis->end(); ++DSViter) {
0274         edm::DetSet<SiStripDigi>::const_iterator begin = DSViter->data.begin();
0275         edm::DetSet<SiStripDigi>::const_iterator end = DSViter->data.end();
0276         edm::DetSet<SiStripDigi>::const_iterator iter;
0277         unsigned int id = DSViter->id;
0278         DetId detId(id);
0279 
0280         if (detId.subdetId() == sdSiTIB) {
0281           edm::LogPrint("SimDigiDumper") << "TIB " << DSViter->data.size();
0282         } else if (detId.subdetId() == sdSiTOB) {
0283           edm::LogPrint("SimDigiDumper") << "TOB " << DSViter->data.size();
0284         } else if (detId.subdetId() == sdSiTID) {
0285           edm::LogPrint("SimDigiDumper") << "TID " << DSViter->data.size();
0286         }
0287         if (detId.subdetId() == sdSiTEC) {
0288           edm::LogPrint("SimDigiDumper") << "TEC " << DSViter->data.size();
0289         }
0290         for (iter = begin; iter != end; ++iter) {
0291           edm::LogPrint("SimDigiDumper") << (*iter);
0292         }
0293       }
0294     }
0295   }
0296 
0297   // Pixel Tracker
0298   bool isPixel = true;
0299   auto pixelDigis = iEvent.getHandle(SiPxlSrc_);
0300   if (!pixelDigis.isValid()) {
0301     edm::LogPrint("SimDigiDumper") << "Unable to find pixelDigis in event!";
0302   } else {
0303     if (pixelDigis->size() == 0)
0304       isPixel = false;
0305     edm::LogPrint("SimDigiDumper") << "Pixel Tracker, digi multiplicity = " << pixelDigis->size();
0306 
0307     if (isPixel) {
0308       edm::DetSetVector<PixelDigi>::const_iterator DSViter;
0309       for (DSViter = pixelDigis->begin(); DSViter != pixelDigis->end(); ++DSViter) {
0310         edm::DetSet<PixelDigi>::const_iterator begin = DSViter->data.begin();
0311         edm::DetSet<PixelDigi>::const_iterator end = DSViter->data.end();
0312         edm::DetSet<PixelDigi>::const_iterator iter;
0313         unsigned int id = DSViter->id;
0314         DetId detId(id);
0315 
0316         if (detId.subdetId() == sdPxlBrl) {
0317           edm::LogPrint("SimDigiDumper") << "Pixel barrel " << DSViter->data.size();
0318         } else if (detId.subdetId() == sdPxlFwd) {
0319           edm::LogPrint("SimDigiDumper") << "Pixel forward " << DSViter->data.size();
0320         }
0321         for (iter = begin; iter != end; ++iter) {
0322           edm::LogPrint("SimDigiDumper") << (*iter);
0323         }
0324       }
0325     }
0326   }
0327 
0328   // DT
0329   bool isDT = true;
0330   auto dtDigis = iEvent.getHandle(MuDTSrc_);
0331   if (!dtDigis.isValid()) {
0332     edm::LogPrint("SimDigiDumper") << "Unable to find dtDigis in event!";
0333   }
0334   unsigned int nDT = 0;
0335   if (dtDigis->begin() == dtDigis->end()) {
0336     isDT = false;
0337     edm::LogPrint("SimDigiDumper") << "dtDigis seem empty!";
0338   }
0339   if (isDT) {
0340     DTDigiCollection::DigiRangeIterator dtLayerIt;
0341     for (dtLayerIt = dtDigis->begin(); dtLayerIt != dtDigis->end(); ++dtLayerIt) {
0342       const DTDigiCollection::Range& range = (*dtLayerIt).second;
0343       edm::LogPrint("SimDigiDumper") << "DT layer = " << (*dtLayerIt).first << " digi ";
0344       for (DTDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) {
0345         edm::LogPrint("SimDigiDumper") << (*digiIt);
0346         nDT++;
0347       }
0348     }
0349   }
0350   edm::LogPrint("SimDigiDumper") << "DT, digi multiplicity = " << nDT;
0351 
0352   // CSC strip
0353   bool isCSCStrip = true;
0354   auto cscStripDigis = iEvent.getHandle(MuCSCStripSrc_);
0355   if (!cscStripDigis.isValid()) {
0356     edm::LogPrint("SimDigiDumper") << "Unable to find cscStripDigis in event!";
0357   }
0358   if (cscStripDigis->begin() == cscStripDigis->end())
0359     isCSCStrip = false;
0360   unsigned int nCSCStrip = 0;
0361 
0362   if (isCSCStrip) {
0363     CSCStripDigiCollection::DigiRangeIterator detUnitIt;
0364     for (detUnitIt = cscStripDigis->begin(); detUnitIt != cscStripDigis->end(); ++detUnitIt) {
0365       const CSCStripDigiCollection::Range& range = (*detUnitIt).second;
0366       edm::LogPrint("SimDigiDumper") << "CSC detid = " << (*detUnitIt).first << " digi ";
0367       for (CSCStripDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) {
0368         edm::LogPrint("SimDigiDumper") << (*digiIt);
0369         nCSCStrip++;
0370       }
0371     }
0372   }
0373   edm::LogPrint("SimDigiDumper") << "CSC strip, digi multiplicity = " << nCSCStrip;
0374 
0375   // CSC wire
0376   bool isCSCWire = true;
0377   auto cscWireDigis = iEvent.getHandle(MuCSCWireSrc_);
0378   if (!cscWireDigis.isValid()) {
0379     edm::LogPrint("SimDigiDumper") << "Unable to find cscWireDigis in event!";
0380   }
0381   if (cscWireDigis->begin() == cscWireDigis->end())
0382     isCSCWire = false;
0383   unsigned int nCSCWire = 0;
0384 
0385   if (isCSCWire) {
0386     CSCWireDigiCollection::DigiRangeIterator detUnitIt;
0387     for (detUnitIt = cscWireDigis->begin(); detUnitIt != cscWireDigis->end(); ++detUnitIt) {
0388       const CSCWireDigiCollection::Range& range = (*detUnitIt).second;
0389       edm::LogPrint("SimDigiDumper") << "CSC detid = " << (*detUnitIt).first << " digi ";
0390       for (CSCWireDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) {
0391         edm::LogPrint("SimDigiDumper") << (*digiIt);
0392         nCSCWire++;
0393       }
0394     }
0395   }
0396   edm::LogPrint("SimDigiDumper") << "CSC wire, digi multiplicity = " << nCSCWire;
0397 
0398   // RPC
0399   bool isRPC = true;
0400   auto rpcDigis = iEvent.getHandle(MuRPCSrc_);
0401   if (!rpcDigis.isValid()) {
0402     edm::LogPrint("SimDigiDumper") << "Unable to find rpcDigis in event!";
0403   }
0404   if (rpcDigis->begin() == rpcDigis->end())
0405     isRPC = false;
0406   unsigned int nRPC = 0;
0407 
0408   if (isRPC) {
0409     RPCDigiCollection::DigiRangeIterator detUnitIt;
0410     for (detUnitIt = rpcDigis->begin(); detUnitIt != rpcDigis->end(); ++detUnitIt) {
0411       const RPCDigiCollection::Range& range = (*detUnitIt).second;
0412       edm::LogPrint("SimDigiDumper") << "RPC detid = " << (*detUnitIt).first << " digi ";
0413       for (RPCDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) {
0414         edm::LogPrint("SimDigiDumper") << (*digiIt);
0415         nRPC++;
0416       }
0417     }
0418   }
0419   edm::LogPrint("SimDigiDumper") << "RPC, digi multiplicity = " << nRPC;
0420 
0421   // BTL
0422   bool isBTL = true;
0423   const BTLDigiCollection* BTLdigis = 0;
0424   auto BTLDigi = iEvent.getHandle(BTLSrc_);
0425   if (!BTLDigi.isValid()) {
0426     edm::LogPrint("SimDigiDumper") << "Unable to find BTLDigi in event!";
0427   } else {
0428     BTLdigis = BTLDigi.product();
0429     if (BTLDigi->size() == 0)
0430       isBTL = false;
0431     edm::LogPrint("SimDigiDumper") << "Barrel Timing Layer, digi multiplicity = " << BTLDigi->size();
0432 
0433     if (isBTL) {
0434       // loop over digis
0435       for (unsigned int digis = 0; digis < BTLDigi->size(); ++digis) {
0436         BTLDataFrame btldf = (*BTLdigis)[digis];
0437         edm::LogPrint("SimDigiDumper") << btldf.id().rawId();
0438         btldf.print();
0439       }
0440     }
0441   }
0442 
0443   // ETL
0444   bool isETL = true;
0445   const ETLDigiCollection* ETLdigis = 0;
0446   auto ETLDigi = iEvent.getHandle(ETLSrc_);
0447   if (!ETLDigi.isValid()) {
0448     edm::LogPrint("SimDigiDumper") << "Unable to find ETLDigi in event!";
0449   } else {
0450     ETLdigis = ETLDigi.product();
0451     if (ETLDigi->size() == 0)
0452       isETL = false;
0453     edm::LogPrint("SimDigiDumper") << "Endcap Timing Layer, digi multiplicity = " << ETLDigi->size();
0454 
0455     if (isETL) {
0456       // loop over digis
0457       for (unsigned int digis = 0; digis < ETLDigi->size(); ++digis) {
0458         ETLDataFrame etldf = (*ETLdigis)[digis];
0459         edm::LogPrint("SimDigiDumper") << etldf.id().rawId();
0460         etldf.print();
0461       }
0462     }
0463   }
0464 
0465   return;
0466 }
0467 
0468 void SimDigiDumper::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0469   edm::ParameterSetDescription desc;
0470   desc.add<edm::InputTag>("ECalEBSrc", edm::InputTag("simEcalDigis", "ebDigis"))->setComment("ECAL barrel digis");
0471   desc.add<edm::InputTag>("ECalEESrc", edm::InputTag("simEcalDigis", "eeDigis"))->setComment("ECAL endcap digis");
0472   desc.add<edm::InputTag>("ECalESSrc", edm::InputTag("simEcalPreshowerDigis"))->setComment("ECAL preshower digis");
0473   desc.add<edm::InputTag>("HCalSrc", edm::InputTag("simHcalDigis"))->setComment("HCAL digis");
0474   desc.add<edm::InputTag>("ZdcSrc", edm::InputTag("simHcalUnsuppressedDigis"))->setComment("ZDC digis");
0475   desc.add<edm::InputTag>("SiStripSrc", edm::InputTag("simSiStripDigis", "ZeroSuppressed"))
0476       ->setComment("Si strip digis");
0477   desc.add<edm::InputTag>("SiPxlSrc", edm::InputTag("simSiPixelDigis"))->setComment("Si pixel digis");
0478   desc.add<edm::InputTag>("MuDTSrc", edm::InputTag("simMuonDTDigis"))->setComment("DT digis");
0479   desc.add<edm::InputTag>("MuCSCStripSrc", edm::InputTag("simMuonCSCDigis", "MuonCSCStripDigi"))
0480       ->setComment("CSC strip digis");
0481   desc.add<edm::InputTag>("MuCSCWireSrc", edm::InputTag("simMuonCSCDigis", "MuonCSCWireDigi"))
0482       ->setComment("CSC wire digis");
0483   desc.add<edm::InputTag>("MuRPCSrc", edm::InputTag("simMuonRPCDigis"))->setComment("RPC digis");
0484   desc.add<edm::InputTag>("BTLSrc", edm::InputTag("mix", "FTLBarrel"))->setComment("BTL digis");
0485   desc.add<edm::InputTag>("ETLSrc", edm::InputTag("mix", "FTLEndcap"))->setComment("ETL digis");
0486   descriptions.add("simDigiDumper", desc);
0487 }
0488 
0489 //define this as a plug-in
0490 DEFINE_FWK_MODULE(SimDigiDumper);