|
void | beginJob () override |
|
| CSCSkim (const edm::ParameterSet &pset) |
|
void | endJob () override |
|
bool | filter (edm::Event &event, const edm::EventSetup &eventSetup) override |
|
| ~CSCSkim () override |
|
| EDFilter () |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () |
|
SerialTaskQueue * | globalRunsQueue () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDFilter () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESProxyIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
|
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDFilter | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &) |
|
static bool | wantsGlobalLuminosityBlocks () |
|
static bool | wantsGlobalRuns () |
|
static bool | wantsInputProcessBlocks () |
|
static bool | wantsProcessBlocks () |
|
static bool | wantsStreamLuminosityBlocks () |
|
static bool | wantsStreamRuns () |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () noexcept |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) noexcept |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
This simple program selects minimal CSC events for output.
Michael Schmitt, Northwestern University, July 2008
Description: Offline skim module for CSC cosmic ray data
Implementation: <Notes on="" implementation>="">
Definition at line 72 of file CSCSkim.h.
Definition at line 51 of file CSCSkim.cc.
90 pMin =
pset.getUntrackedParameter<
double>(
"pMin", 3.);
91 zLengthMin =
pset.getUntrackedParameter<
double>(
"zLengthMin", 200.);
93 zInnerMax =
pset.getUntrackedParameter<
double>(
"zInnerMax", 9000.);
96 rExtMax =
pset.getUntrackedParameter<
double>(
"rExtMax", 3000.);
100 LogInfo(
"[CSCSkim] Setup") <<
"\n\t===== CSCSkim =====\n"
101 <<
"\t\ttype of skim ...............................\t" <<
typeOfSkim
104 <<
"\n\t\tminimum number of segments ...............\t" <<
minimumSegments
106 <<
"\n\t\tmake histograms...........................\t" <<
makeHistograms
108 <<
"\n\t===================\n\n";
References CSCSkim_cfi::demandChambersBothSides, CSCSkim_cfi::histogramFileName, CSCSkim_cfi::makeHistograms, CommPDSkim_cfg::minimumHitChambers, CommPDSkim_cfg::minimumSegments, CSCSkim_cfi::nLayersWithHitsMinimum, reco_skim_cfg_mod::outputFileName, ALCARECOTkAlMinBias_cff::pMin, muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, CosmicsPD_Skims::typeOfSkim, CSCSkim_cfi::whichChamber, CSCSkim_cfi::whichEndcap, CSCSkim_cfi::whichRing, and CSCSkim_cfi::whichStation.
Definition at line 1110 of file CSCSkim.cc.
1113 bool acceptThisEvent =
false;
1118 int nGoodSAMuons = 0;
1119 for (reco::TrackCollection::const_iterator
muon = saMuons->begin();
muon != saMuons->end(); ++
muon) {
1120 float preco =
muon->p();
1123 GlobalPoint iPnt(innerPo.x(), innerPo.y(), innerPo.z());
1125 GlobalPoint oPnt(outerPo.x(), outerPo.y(), outerPo.z());
1126 float zLength =
abs(iPnt.z() - oPnt.z());
1129 GlobalVector iP(innerMom.x(), innerMom.y(), innerMom.z());
1131 GlobalVector oP(outerMom.x(), outerMom.y(), outerMom.z());
1133 const float zRef = 300.;
1134 float xExt = 10000.;
1135 float yExt = 10000.;
1136 if (
abs(oPnt.z()) <
abs(iPnt.z())) {
1139 deltaZ = zRef - oPnt.
z();
1141 deltaZ = -zRef - oPnt.z();
1143 xExt = oPnt.x() + deltaZ * oP.x() / oP.z();
1144 yExt = oPnt.y() + deltaZ * oP.y() / oP.z();
1148 deltaZ = zRef - iPnt.z();
1150 deltaZ = -zRef - iPnt.z();
1152 xExt = iPnt.x() + deltaZ * iP.x() / iP.z();
1153 yExt = iPnt.y() + deltaZ * iP.y() / iP.z();
1155 float rExt =
sqrt(xExt * xExt + yExt * yExt);
1162 const DetId detId((*hit)->geographicalId());
1174 if (
abs(iPnt.z()) <
abs(iPnt.z())) {
1193 int nGoodTracks = 0;
1195 float preco =
track->p();
1196 int n =
track->recHitsSize();
1199 GlobalPoint iPnt(innerPo.x(), innerPo.y(), innerPo.z());
1201 GlobalPoint oPnt(outerPo.x(), outerPo.y(), outerPo.z());
1202 float zLength =
abs(iPnt.z() - oPnt.z());
1205 GlobalVector iP(innerMom.x(), innerMom.y(), innerMom.z());
1207 GlobalVector oP(outerMom.x(), outerMom.y(), outerMom.z());
1209 const float zRef = 300.;
1210 float xExt = 10000.;
1211 float yExt = 10000.;
1212 if (
abs(oPnt.z()) >
abs(iPnt.z())) {
1215 deltaZ = zRef - oPnt.
z();
1217 deltaZ = -zRef - oPnt.z();
1219 xExt = oPnt.x() + deltaZ * oP.x() / oP.z();
1220 yExt = oPnt.y() + deltaZ * oP.y() / oP.z();
1224 deltaZ = zRef - iPnt.z();
1226 deltaZ = -zRef - iPnt.z();
1228 xExt = iPnt.x() + deltaZ * iP.x() / iP.z();
1229 yExt = iPnt.y() + deltaZ * iP.y() / iP.z();
1231 float rExt =
sqrt(xExt * xExt + yExt * yExt);
1244 int nGoodGlobalMuons = 0;
1245 for (reco::MuonCollection::const_iterator global = gMuons->begin(); global != gMuons->end(); ++global) {
1246 if (global->isGlobalMuon()) {
1247 float pDef = global->p();
1248 float redChiSq = global->globalTrack()->normalizedChi2();
1252 int nTrackerHits =
hp.numberOfValidTrackerHits();
1259 hit != (global->globalTrack())->recHitsEnd();
1261 const DetId detId((*hit)->geographicalId());
1271 bool goodGlobalMuon =
1274 if (goodGlobalMuon) {
1285 acceptThisEvent = ((nGoodSAMuons > 0) && (nGoodTracks > 0)) || (nGoodGlobalMuons > 0);
1287 return acceptThisEvent;
References funct::abs(), MuonSubdetId::CSC, MuonSubdetId::DT, spr::goodTrack(), trackingPlots::hp, DetId::Muon, HLT_FULL_cff::muon, dqmiodumpmetadata::n, ALCARECOTkAlMinBias_cff::pMin, mathSSE::sqrt(), HLT_FULL_cff::track, PDWG_EXOHSCP_cff::tracks, and PV3DBase< T, PVType, FrameType >::z().
Definition at line 376 of file CSCSkim.cc.
379 int nRecHits = cscRecHits->size();
383 for (
int i = 0;
i < 600;
i++) {
392 for (recIt = cscRecHits->begin(); recIt != cscRecHits->end(); recIt++) {
395 int kEndcap = idrec.
endcap();
396 int kRing = idrec.
ring();
397 int kStation = idrec.
station();
398 int kChamber = idrec.
chamber();
402 int kSerial =
chamberSerial(kEndcap, kStation, kRing, kChamber);
407 cntRecHit[kSerial] += kDigit;
415 int nChambersWithMinimalHits = 0;
416 int nChambersWithMinimalHitsPOS = 0;
417 int nChambersWithMinimalHitsNEG = 0;
419 for (
int i = 0;
i < 600;
i++) {
420 if (cntRecHit[
i] > 0) {
421 int nLayersWithHits = 0;
423 for (
int j = 5;
j > -1;
j--) {
424 float digit =
dummy /
pow((
float)10., (
float)
j);
425 int kCount = (
int)digit;
432 nChambersWithMinimalHitsPOS++;
434 nChambersWithMinimalHitsNEG++;
439 nChambersWithMinimalHits = nChambersWithMinimalHitsPOS + nChambersWithMinimalHitsNEG;
455 if (nChambersWithMinimalHits > 0) {
465 bool chambersOnBothSides =
468 if (chambersOnBothSides) {
472 bool selectEvent =
false;
474 selectEvent = basicEvent;
477 selectEvent = chambersOnBothSides;
481 LogDebug(
"[CSCSkim]") <<
"----- nRecHits = " << nRecHits
482 <<
"\tnChambersWithMinimalHits = " << nChambersWithMinimalHits <<
"\tnSegments = " << nSegments
483 <<
"\tselect? " << selectEvent << std::endl;
References CSCDetId::chamber(), dtChamberEfficiency_cfi::cscSegments, CSCDetId::endcap(), dqmMemoryStats::float, mps_fire::i, createfilelist::int, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), LogDebug, CSCSkim_cfi::makeHistograms, CommPDSkim_cfg::minimumHitChambers, CommPDSkim_cfg::minimumSegments, CSCSkim_cfi::nLayersWithHitsMinimum, funct::pow(), CSCDetId::ring(), CSCDetId::station(), and CosmicsPD_Skims::typeOfSkim.
Definition at line 593 of file CSCSkim.cc.
596 int nRecHits = cscRecHits->size();
600 for (
int i = 0;
i < 600;
i++) {
609 for (recIt = cscRecHits->begin(); recIt != cscRecHits->end(); recIt++) {
612 int kEndcap = idrec.
endcap();
613 int kRing = idrec.
ring();
614 int kStation = idrec.
station();
615 int kChamber = idrec.
chamber();
619 int kSerial =
chamberSerial(kEndcap, kStation, kRing, kChamber);
624 cntRecHit[kSerial] += kDigit;
632 int nChambersWithMinimalHits = 0;
633 int nChambersWithMinimalHitsPOS = 0;
634 int nChambersWithMinimalHitsNEG = 0;
636 for (
int i = 0;
i < 600;
i++) {
637 if (cntRecHit[
i] > 0) {
638 int nLayersWithHits = 0;
640 for (
int j = 5;
j > -1;
j--) {
641 float digit =
dummy /
pow((
float)10., (
float)
j);
642 int kCount = (
int)digit;
649 nChambersWithMinimalHitsPOS++;
651 nChambersWithMinimalHitsNEG++;
656 nChambersWithMinimalHits = nChambersWithMinimalHitsPOS + nChambersWithMinimalHitsNEG;
673 double dummy = (double)nRecHits;
677 dummy = (double)nChambersWithMinimalHits;
681 dummy = (double)nSegments;
692 bool selectEvent =
false;
693 if ((nRecHits > 54) && (nChambersWithMinimalHits > 5)) {
698 LogDebug(
"[CSCSkim]") <<
"----- nRecHits = " << nRecHits
699 <<
"\tnChambersWithMinimalHits = " << nChambersWithMinimalHits <<
"\tnSegments = " << nSegments
700 <<
"\tselect? " << selectEvent << std::endl;
References CSCDetId::chamber(), dtChamberEfficiency_cfi::cscSegments, CSCDetId::endcap(), dqmMemoryStats::float, mps_fire::i, createfilelist::int, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), LogDebug, CSCSkim_cfi::nLayersWithHitsMinimum, funct::pow(), CSCDetId::ring(), and CSCDetId::station().