Skip to content

Commit

Permalink
Merge pull request #935 from ktf/consumes-CSCRawToDigi
Browse files Browse the repository at this point in the history
Consumes migration -- CSCRawToDigi
  • Loading branch information
ktf committed Sep 27, 2013
2 parents 328902d + 9e2a96d commit 20a30f1
Show file tree
Hide file tree
Showing 15 changed files with 370 additions and 371 deletions.
6 changes: 4 additions & 2 deletions EventFilter/CSCRawToDigi/interface/CSCDCCUnpacker.h
Expand Up @@ -7,10 +7,11 @@
* \author Alex Tumanov
*/

#include <FWCore/Framework/interface/ConsumesCollector.h>
#include <FWCore/Framework/interface/EDProducer.h>
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include <FWCore/ParameterSet/interface/ParameterSet.h>
#include "FWCore/Utilities/interface/InputTag.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"

class CSCMonitorInterface;

Expand Down Expand Up @@ -42,8 +43,9 @@ class CSCDCCUnpacker: public edm::EDProducer {
unsigned int errorMask, examinerMask;
bool instantiateDQM;
CSCMonitorInterface * monitor;
edm::InputTag inputObjectsTag; // input tag labelling raw data for input

/// Token for consumes interface & access to data
edm::EDGetTokenT<FEDRawDataCollection> i_token;


};
Expand Down
44 changes: 29 additions & 15 deletions EventFilter/CSCRawToDigi/interface/CSCDigiValidator.h
@@ -1,30 +1,27 @@
/**\class CSCDigiValidator CSCDigiValidator.cc UserCode/CSCDigiValidator/src/CSCDigiValidator.cc
Description: <one line class summary>
Implementation:
<Notes on implementation>
*/
//

// Original Author: Lindsey Gray
// Created: Tue Jul 28 18:04:11 CEST 2009
//
//


// system include files
#include <memory>
#include <string>

// user include files
#include <FWCore/Framework/interface/ConsumesCollector.h>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDFilter.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Utilities/interface/InputTag.h"

//
// class decleration
//
#include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
#include "DataFormats/L1CSCTrackFinder/interface/CSCTriggerContainer.h"
#include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
#include "DataFormats/L1CSCTrackFinder/interface/TrackStub.h"

class CSCWireDigi;
class CSCStripDigi;
Expand Down Expand Up @@ -71,5 +68,22 @@ class CSCDigiValidator : public edm::EDFilter {
edm::InputTag wire2,strip2,comp2,clct2,alct2,lct2,csctf2,csctfstubs2;

bool reorderStrips;
};

edm::EDGetTokenT<CSCWireDigiCollection> wd1_token;
edm::EDGetTokenT<CSCStripDigiCollection> sd1_token;
edm::EDGetTokenT<CSCComparatorDigiCollection> cd1_token;
edm::EDGetTokenT<CSCALCTDigiCollection> al1_token;
edm::EDGetTokenT<CSCCLCTDigiCollection> cl1_token;
edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> co1_token;
edm::EDGetTokenT<L1CSCTrackCollection> tr1_token;
edm::EDGetTokenT<CSCTriggerContainer<csctf::TrackStub> > ts1_token;

edm::EDGetTokenT<CSCWireDigiCollection> wd2_token;
edm::EDGetTokenT<CSCStripDigiCollection> sd2_token;
edm::EDGetTokenT<CSCComparatorDigiCollection> cd2_token;
edm::EDGetTokenT<CSCALCTDigiCollection> al2_token;
edm::EDGetTokenT<CSCCLCTDigiCollection> cl2_token;
edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> co2_token;
edm::EDGetTokenT<L1CSCTrackCollection> tr2_token;
edm::EDGetTokenT<CSCTriggerContainer<csctf::TrackStub> > ts2_token;
};
58 changes: 21 additions & 37 deletions EventFilter/CSCRawToDigi/interface/CSCViewDigi.h
@@ -1,28 +1,18 @@
/// -*- C++ -*-
//
// Package: CSCViewDigi
// Class: CSCViewDigi
//
/**\class CSCViewDigi CSCViewDigi.h
#ifndef CSCViewDigi_H
#define CSCViewDigi_H

Location: EventFilter/CSCRawToDigi/interface/ViewDigi.h
/**\class CSCViewDigi CSCViewDigi.h
Description: <one line class summary>
Location: EventFilter/CSCRawToDigi/interface/CSCViewDigi.h
Implementation:
<Notes on implementation>
*/
//

// Original Author: Alexandre Sakharov
// Created: Sun May 10 15:43:28 CEST 2009
//
//


// system include files
#include <memory>

// user include files
#include <FWCore/Framework/interface/ConsumesCollector.h>
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
Expand All @@ -41,15 +31,7 @@ Description: <one line class summary>
#include "DataFormats/CSCDigi/interface/CSCDDUStatusDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCDCCStatusDigiCollection.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
//#include <EventFilter/CSCRawToDigi/interface/CSCDCCUnpacker.h>
//#include <iostream> CSCCorrelatedLCTDigi

//
// class decleration
//

#ifndef SCViewDigi_H
#define SCViewDigi_H

class CSCViewDigi : public edm::EDAnalyzer {
public:
Expand All @@ -58,23 +40,25 @@ class CSCViewDigi : public edm::EDAnalyzer {


private:
edm::InputTag wireDigiTag_;
edm::InputTag alctDigiTag_;
edm::InputTag clctDigiTag_;
edm::InputTag corrclctDigiTag_;
edm::InputTag stripDigiTag_;
edm::InputTag comparatorDigiTag_;
edm::InputTag rpcDigiTag_;
edm::InputTag statusDigiTag_;
edm::InputTag DDUstatusDigiTag_;
edm::InputTag DCCstatusDigiTag_;

virtual void analyze(const edm::Event&, const edm::EventSetup&);
virtual void endJob() ;

bool WiresDigiDump, AlctDigiDump, ClctDigiDump, CorrClctDigiDump;
bool StripDigiDump, ComparatorDigiDump, RpcDigiDump, StatusDigiDump;
bool DDUStatusDigiDump, DCCStatusDigiDump;
virtual void analyze(const edm::Event&, const edm::EventSetup&);
virtual void endJob() ;

// ----------member data ---------------------------
edm::EDGetTokenT<CSCWireDigiCollection> wd_token;
edm::EDGetTokenT<CSCStripDigiCollection> sd_token;
edm::EDGetTokenT<CSCComparatorDigiCollection> cd_token;
edm::EDGetTokenT<CSCRPCDigiCollection> rd_token;
edm::EDGetTokenT<CSCALCTDigiCollection> al_token;
edm::EDGetTokenT<CSCCLCTDigiCollection> cl_token;
edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> co_token;
edm::EDGetTokenT<CSCDCCFormatStatusDigiCollection> st_token;
edm::EDGetTokenT<CSCDDUStatusDigiCollection> dd_token;
edm::EDGetTokenT<CSCDCCStatusDigiCollection> dc_token;

};

#endif
Expand Down
27 changes: 24 additions & 3 deletions EventFilter/CSCRawToDigi/interface/DigiAnalyzer.h
@@ -1,27 +1,48 @@
/**
* Demo analyzer for reading digis
* author A.Tumanov 2/22/06
* Updated 10.09.2013 but untested - Tim Cox
*
*/

#include <iostream>
#include <FWCore/Framework/interface/ConsumesCollector.h>
#include "FWCore/Framework/interface/EDAnalyzer.h"
#include "FWCore/Framework/interface/Event.h"
#include "DataFormats/Common/interface/Handle.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"

#include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCDDUStatusDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCRPCDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCDCCFormatStatusDigiCollection.h"

class DigiAnalyzer : public edm::EDAnalyzer {
public:
explicit DigiAnalyzer(edm::ParameterSet const& conf);
virtual void analyze(edm::Event const& e, edm::EventSetup const& iSetup);
//virtual void endJob();

private:
// variables persistent across events should be declared here.
//

int eventNumber;

edm::EDGetTokenT<CSCWireDigiCollection> wd_token;
edm::EDGetTokenT<CSCStripDigiCollection> sd_token;
edm::EDGetTokenT<CSCComparatorDigiCollection> cd_token;
edm::EDGetTokenT<CSCALCTDigiCollection> al_token;
edm::EDGetTokenT<CSCCLCTDigiCollection> cl_token;
edm::EDGetTokenT<CSCRPCDigiCollection> rd_token;
edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> co_token;
edm::EDGetTokenT<CSCDDUStatusDigiCollection> dd_token;
edm::EDGetTokenT<CSCDCCFormatStatusDigiCollection> dc_token;

};


Expand Down
9 changes: 5 additions & 4 deletions EventFilter/CSCRawToDigi/plugins/CSCDCCUnpacker.cc
Expand Up @@ -6,10 +6,11 @@
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Utilities/interface/InputTag.h"

//FEDRawData
#include "DataFormats/FEDRawData/interface/FEDRawData.h"
#include "DataFormats/FEDRawData/interface/FEDNumbering.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"

//Digi stuff
#include "DataFormats/CSCDigi/interface/CSCStripDigi.h"
Expand Down Expand Up @@ -71,8 +72,8 @@ CSCDCCUnpacker::CSCDCCUnpacker(const edm::ParameterSet & pset) :
numOfEvents(0) {

// Tracked
i_token = consumes<FEDRawDataCollection>( pset.getParameter<edm::InputTag>("InputObjects") );

inputObjectsTag = pset.getParameter<edm::InputTag>("InputObjects");
useExaminer = pset.getParameter<bool>("UseExaminer");
examinerMask = pset.getParameter<unsigned int>("ExaminerMask");
/// Selective unpacking mode will skip only troublesome CSC blocks and not whole DCC/DDU block
Expand Down Expand Up @@ -155,8 +156,8 @@ void CSCDCCUnpacker::produce(edm::Event & e, const edm::EventSetup& c){

/// Get a handle to the FED data collection
edm::Handle<FEDRawDataCollection> rawdata;
e.getByLabel(inputObjectsTag, rawdata);
e.getByToken( i_token, rawdata);

/// create the collections of CSC digis
std::auto_ptr<CSCWireDigiCollection> wireProduct(new CSCWireDigiCollection);
std::auto_ptr<CSCStripDigiCollection> stripProduct(new CSCStripDigiCollection);
Expand Down
11 changes: 5 additions & 6 deletions EventFilter/CSCRawToDigi/plugins/CSCDigiToPattern.cc
@@ -1,14 +1,12 @@
#include <FWCore/Utilities/interface/InputTag.h>
#include "EventFilter/CSCRawToDigi/src/CSCDigiToPattern.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
#include "DataFormats/MuonDetId/interface/CSCDetId.h"

CSCDigiToPattern::CSCDigiToPattern(edm::ParameterSet const& conf) {

// If your module takes parameters, here is where you would define
// their names and types, and access them to initialize internal
// variables. Example as follows:
//
d_token = consumes<CSCCorrelatedLCTDigiCollection>( conf.getParameter<edm::InputTag>("corrlctDigiTag") );

}

void CSCDigiToPattern::analyze(edm::Event const& e, edm::EventSetup const& iSetup) {
Expand All @@ -17,7 +15,8 @@ void CSCDigiToPattern::analyze(edm::Event const& e, edm::EventSetup const& iSetu
// to retrieve from event "e".
//
edm::Handle<CSCCorrelatedLCTDigiCollection> correlatedlcts;
e.getByLabel("muonCSCDigis","MuonCSCCorrelatedLCTDigi",correlatedlcts);
e.getByToken( d_token, correlatedlcts);

for (CSCCorrelatedLCTDigiCollection::DigiRangeIterator j=correlatedlcts->begin(); j!=correlatedlcts->end(); j++) {
CSCDetId id=(*j).first;
std::cout<<id<<std::endl;
Expand Down
67 changes: 29 additions & 38 deletions EventFilter/CSCRawToDigi/plugins/CSCDigiToRawModule.cc
@@ -1,41 +1,33 @@
/** \file
*
* \author A. Tumanov - Rice
*/

#include "EventFilter/CSCRawToDigi/src/CSCDigiToRawModule.h"
#include "EventFilter/CSCRawToDigi/src/CSCDigiToRaw.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
#include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
#include "DataFormats/Common/interface/Handle.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "CondFormats/DataRecord/interface/CSCChamberMapRcd.h"



using namespace edm;
using namespace std;

CSCDigiToRawModule::CSCDigiToRawModule(const edm::ParameterSet & pset):
packer(new CSCDigiToRaw(pset)),
theStripDigiTag(pset.getParameter<edm::InputTag>("stripDigiTag")),
theWireDigiTag(pset.getParameter<edm::InputTag>("wireDigiTag")),
theComparatorDigiTag(pset.getParameter<edm::InputTag>("comparatorDigiTag")),
theALCTDigiTag(pset.getParameter<edm::InputTag>("alctDigiTag")),
theCLCTDigiTag(pset.getParameter<edm::InputTag>("clctDigiTag")),
thePreTriggerTag(pset.getParameter<edm::InputTag>("preTriggerTag")),
theCorrelatedLCTDigiTag(pset.getParameter<edm::InputTag>("correlatedLCTDigiTag"))
packer(new CSCDigiToRaw(pset))
{
//theStrip = pset.getUntrackedParameter<string>("DigiCreator", "cscunpacker");

wd_token = consumes<CSCWireDigiCollection>( pset.getParameter<edm::InputTag>("wireDigiTag") );
sd_token = consumes<CSCStripDigiCollection>( pset.getParameter<edm::InputTag>("stripDigiTag") );
cd_token = consumes<CSCComparatorDigiCollection>( pset.getParameter<edm::InputTag>("comparatorDigiTag") );
pr_token = consumes<CSCCLCTPreTriggerCollection>( pset.getParameter<edm::InputTag>("preTriggerTag") );
al_token = consumes<CSCALCTDigiCollection>( pset.getParameter<edm::InputTag>("alctDigiTag") );
cl_token = consumes<CSCCLCTDigiCollection>( pset.getParameter<edm::InputTag>("clctDigiTag") );
co_token = consumes<CSCCorrelatedLCTDigiCollection>( pset.getParameter<edm::InputTag>("correlatedLCTDigiTag") );

produces<FEDRawDataCollection>("CSCRawData");

}


Expand All @@ -44,31 +36,30 @@ CSCDigiToRawModule::~CSCDigiToRawModule(){
}


void CSCDigiToRawModule::produce(Event & e, const EventSetup& c){
void CSCDigiToRawModule::produce( edm::Event & e, const edm::EventSetup& c ){
///reverse mapping for packer
edm::ESHandle<CSCChamberMap> hcham;
c.get<CSCChamberMapRcd>().get(hcham);
const CSCChamberMap* theMapping = hcham.product();

std::auto_ptr<FEDRawDataCollection> fed_buffers(new FEDRawDataCollection);

auto_ptr<FEDRawDataCollection> fed_buffers(new FEDRawDataCollection);
// Take digis from the event
Handle<CSCStripDigiCollection> stripDigis;
e.getByLabel(theStripDigiTag, stripDigis);
Handle<CSCWireDigiCollection> wireDigis;
e.getByLabel(theWireDigiTag, wireDigis);
Handle<CSCComparatorDigiCollection> comparatorDigis;
e.getByLabel(theComparatorDigiTag, comparatorDigis);
Handle<CSCALCTDigiCollection> alctDigis;
e.getByLabel(theALCTDigiTag, alctDigis);
Handle<CSCCLCTDigiCollection> clctDigis;
e.getByLabel(theCLCTDigiTag, clctDigis);
Handle<CSCCLCTPreTriggerCollection> preTriggers;
e.getByLabel(thePreTriggerTag, preTriggers);
Handle<CSCCorrelatedLCTDigiCollection> correlatedLCTDigis;
e.getByLabel(theCorrelatedLCTDigiTag, correlatedLCTDigis);


edm::Handle<CSCWireDigiCollection> wireDigis;
edm::Handle<CSCStripDigiCollection> stripDigis;
edm::Handle<CSCComparatorDigiCollection> comparatorDigis;
edm::Handle<CSCALCTDigiCollection> alctDigis;
edm::Handle<CSCCLCTDigiCollection> clctDigis;
edm::Handle<CSCCLCTPreTriggerCollection> preTriggers;
edm::Handle<CSCCorrelatedLCTDigiCollection> correlatedLCTDigis;

e.getByToken( wd_token, wireDigis );
e.getByToken( sd_token, stripDigis );
e.getByToken( cd_token, comparatorDigis );
e.getByToken( al_token, alctDigis );
e.getByToken( cl_token, clctDigis );
e.getByToken( pr_token, preTriggers );
e.getByToken( co_token, correlatedLCTDigis );

// Create the packed data
packer->createFedBuffers(*stripDigis, *wireDigis, *comparatorDigis,
Expand Down

0 comments on commit 20a30f1

Please sign in to comment.