19 template <
typename CollectionClass>
22 std::set<ecaldqm::DQWorker*>
const& _enabledTasks) {
37 if (_enabledTasks.find(worker) != _enabledTasks.end())
38 static_cast<ecaldqm::DQWorkerTask*>(worker)->analyze(
collection, _col);
48 for (std::vector<ecaldqm::Collections>::const_iterator colItr(_preSchedule.begin()); colItr != _preSchedule.end();
50 std::pair<Processor, ecaldqm::Collections> sch;
57 sch.first = &EcalDQMonitorTask::runOnCollection<FEDRawDataCollection>;
61 sch.first = &EcalDQMonitorTask::runOnCollection<EcalRawDataCollection>;
67 sch.first = &EcalDQMonitorTask::runOnCollection<EBDetIdCollection>;
73 sch.first = &EcalDQMonitorTask::runOnCollection<EEDetIdCollection>;
82 sch.first = &EcalDQMonitorTask::runOnCollection<EcalElectronicsIdCollection>;
86 sch.first = &EcalDQMonitorTask::runOnCollection<EBSrFlagCollection>;
90 sch.first = &EcalDQMonitorTask::runOnCollection<EESrFlagCollection>;
94 sch.first = &EcalDQMonitorTask::runOnCollection<EBDigiCollection>;
98 sch.first = &EcalDQMonitorTask::runOnCollection<EEDigiCollection>;
102 sch.first = &EcalDQMonitorTask::runOnCollection<EcalPnDiodeDigiCollection>;
107 sch.first = &EcalDQMonitorTask::runOnCollection<EcalTrigPrimDigiCollection>;
116 sch.first = &EcalDQMonitorTask::runOnCollection<EcalUncalibratedRecHitCollection>;
123 sch.first = &EcalDQMonitorTask::runOnCollection<EcalRecHitCollection>;
128 sch.first = &EcalDQMonitorTask::runOnCollection<edm::View<reco::CaloCluster> >;
133 sch.first = &EcalDQMonitorTask::runOnCollection<reco::SuperClusterCollection>;
136 throw cms::Exception(
"InvalidConfiguration") <<
"Undefined collection " << *colItr;
139 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]
void executeOnWorkers_(FuncOnWorker, std::string const &, std::string const &="", int=1) const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string const collectionName[nCollections]
void runOnCollection(edm::Event const &, ecaldqm::Collections, std::set< ecaldqm::DQWorker * > const &)
std::string const moduleName_
Log< level::Info, false > LogInfo
std::vector< std::pair< Processor, ecaldqm::Collections > > schedule_
T const * product() const
bool allowMissingCollections_
Log< level::Warning, false > LogWarning