1 #include "../interface/EcalDQMonitorTask.h"
3 #include "../interface/DQWorkerTask.h"
19 #include "TStopwatch.h"
21 template <
typename CollectionClass>
39 if(_enabledTasks.find(worker) != _enabledTasks.end()){
52 for(std::vector<ecaldqm::Collections>::const_iterator colItr(_preSchedule.begin()); colItr != _preSchedule.end(); ++colItr){
53 std::pair<Processor, ecaldqm::Collections> sch;
60 sch.first = &EcalDQMonitorTask::runOnCollection<FEDRawDataCollection>;
64 sch.first = &EcalDQMonitorTask::runOnCollection<EcalRawDataCollection>;
70 sch.first = &EcalDQMonitorTask::runOnCollection<EBDetIdCollection>;
76 sch.first = &EcalDQMonitorTask::runOnCollection<EEDetIdCollection>;
85 sch.first = &EcalDQMonitorTask::runOnCollection<EcalElectronicsIdCollection>;
89 sch.first = &EcalDQMonitorTask::runOnCollection<EBSrFlagCollection>;
93 sch.first = &EcalDQMonitorTask::runOnCollection<EESrFlagCollection>;
97 sch.first = &EcalDQMonitorTask::runOnCollection<EBDigiCollection>;
101 sch.first = &EcalDQMonitorTask::runOnCollection<EEDigiCollection>;
105 sch.first = &EcalDQMonitorTask::runOnCollection<EcalPnDiodeDigiCollection>;
110 sch.first = &EcalDQMonitorTask::runOnCollection<EcalTrigPrimDigiCollection>;
119 sch.first = &EcalDQMonitorTask::runOnCollection<EcalUncalibratedRecHitCollection>;
126 sch.first = &EcalDQMonitorTask::runOnCollection<EcalRecHitCollection>;
131 sch.first = &EcalDQMonitorTask::runOnCollection<edm::View<reco::CaloCluster> >;
136 sch.first = &EcalDQMonitorTask::runOnCollection<reco::SuperClusterCollection>;
139 throw cms::Exception(
"InvalidConfiguration") <<
"Undefined collection " << *colItr;
142 sch.second = *colItr;
T getUntrackedParameter(std::string const &, T const &) const
void formSchedule(std::vector< ecaldqm::Collections > const &, edm::ParameterSet const &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetToken collectionTokens_[ecaldqm::nCollections]
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void analyze(edm::Event const &, edm::EventSetup const &) override
std::string const collectionName[nCollections]
void runOnCollection(edm::Event const &, ecaldqm::Collections, std::set< ecaldqm::DQWorker * > const &)
std::string const moduleName_
void executeOnWorkers_(FuncOnWorker, std::string const &, std::string const &="", int=1)
std::vector< std::pair< Processor, ecaldqm::Collections > > schedule_
std::map< ecaldqm::DQWorker *, double > taskTimes_
T const * product() const
bool allowMissingCollections_