|
void | beginJob () override |
|
| CSCSkim (const edm::ParameterSet &pset) |
|
void | endJob () override |
|
bool | filter (edm::Event &event, const edm::EventSetup &eventSetup) override |
|
| ~CSCSkim () override |
|
| EDFilter ()=default |
|
| EDFilter (const EDFilter &)=delete |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
const EDFilter & | operator= (const EDFilter &)=delete |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
| EDFilterBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDFilterBase () 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 const &)=delete |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
ESResolverIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
std::vector< ESResolverIndex > 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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
void | selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase) |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProductResolverIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDFilterBase | ModuleType |
|
template<typename T > |
using | BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T > |
|
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 &descriptions) |
|
template<Transition Tr = Transition::Event> |
auto | produces (std::string instanceName) noexcept |
| declare what type of product will make and with which optional label More...
|
|
template<Transition B> |
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) |
|
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 () |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<Transition Tr = Transition::Event> |
auto | produces () noexcept |
|
ProducesCollector | producesCollector () |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B = InEvent> |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
template<Transition Tr = Transition::Event> |
constexpr auto | esConsumes () |
|
template<Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag tag) |
|
template<Transition Tr = Transition::Event> |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
| Used with EventSetupRecord::doGet. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
void | resetItemsToGetFrom (BranchType iType) |
|
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 71 of file CSCSkim.h.
Definition at line 51 of file CSCSkim.cc.
References demandChambersBothSides, glm_token, histogramFileName, ProducerED_cfi::InputTag, makeHistograms, makeHistogramsForMessyEvents, minimumHitChambers, minimumSegments, nCSCHitsMin, nLayersWithHitsMinimum, nTrHitsMin, nValidHitsMin, outputFileName, pMin, muonDTDigis_cfi::pset, redChiSqMax, rExtMax, rh_token, sam_token, sdr_token, sds_token, seg_token, AlCaHLTBitMon_QueryRunRegistry::string, trk_token, typeOfSkim, wdr_token, wds_token, whichChamber, whichEndcap, whichRing, whichStation, zInnerMax, zLengthMin, and zLengthTrMin.
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";
edm::EDGetTokenT< CSCSegmentCollection > seg_token
edm::EDGetTokenT< reco::TrackCollection > sam_token
bool makeHistogramsForMessyEvents
int nLayersWithHitsMinimum
edm::EDGetTokenT< CSCWireDigiCollection > wds_token
std::string outputFileName
edm::EDGetTokenT< reco::TrackCollection > trk_token
edm::EDGetTokenT< reco::MuonCollection > glm_token
std::string histogramFileName
edm::EDGetTokenT< CSCStripDigiCollection > sds_token
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
Log< level::Info, false > LogInfo
const edm::ESGetToken< CSCGeometry, MuonGeometryRecord > m_CSCGeomToken
edm::EDGetTokenT< CSCWireDigiCollection > wdr_token
edm::EDGetTokenT< CSCStripDigiCollection > sdr_token
bool demandChambersBothSides
void CSCSkim::beginJob |
( |
| ) |
|
|
overridevirtual |
Reimplemented from edm::one::EDFilterBase.
Definition at line 119 of file CSCSkim.cc.
References histogramFileName, hxnHitChambers, hxnRecHits, hxnRecHitsSel, hxnSegments, iEvent, iRun, makeHistograms, makeHistogramsForMessyEvents, mevnChambers0, mevnChambers1, mevnRecHits0, mevnRecHits1, mevnSegments0, mevnSegments1, nEventsAnalyzed, nEventsCertainChamber, nEventsChambersBothSides, nEventsDTOverlap, nEventsForBFieldStudies, nEventsHaloLike, nEventsLongSATrack, nEventsMessy, nEventsOverlappingChambers, nEventsSelected, theHistogramFile, xxnCSCHits, xxnTrackerHits, xxnValidHits, xxP, and xxredChiSq.
141 hxnRecHits =
new TH1F(
"hxnRecHits",
"n RecHits", 61, -0.5, 60.5);
142 hxnSegments =
new TH1F(
"hxnSegments",
"n Segments", 11, -0.5, 10.5);
143 hxnHitChambers =
new TH1F(
"hxnHitsChambers",
"n chambers with hits", 11, -0.5, 10.5);
144 hxnRecHitsSel =
new TH1F(
"hxnRecHitsSel",
"n RecHits selected", 61, -0.5, 60.5);
146 xxP =
new TH1F(
"xxP",
"P global", 100, 0., 200.);
147 xxnValidHits =
new TH1F(
"xxnValidHits",
"n valid hits global", 61, -0.5, 60.5);
148 xxnTrackerHits =
new TH1F(
"xxnTrackerHits",
"n tracker hits global", 61, -0.5, 60.5);
149 xxnCSCHits =
new TH1F(
"xxnCSCHits",
"n CSC hits global", 41, -0.5, 40.5);
150 xxredChiSq =
new TH1F(
"xxredChiSq",
"red chisq global", 100, 0., 100.);
154 mevnRecHits0 =
new TH1F(
"mevnRecHits0",
"n RecHits", 121, -0.5, 120.5);
155 mevnChambers0 =
new TH1F(
"mevnChambers0",
"n chambers with hits", 21, -0.5, 20.5);
156 mevnSegments0 =
new TH1F(
"mevnSegments0",
"n Segments", 21, -0.5, 20.5);
157 mevnRecHits1 =
new TH1F(
"mevnRecHits1",
"n RecHits", 100, 0., 300.);
158 mevnChambers1 =
new TH1F(
"mevnChambers1",
"n chambers with hits", 50, 0., 50.);
159 mevnSegments1 =
new TH1F(
"mevnSegments1",
"n Segments", 30, 0., 30.);
bool makeHistogramsForMessyEvents
int nEventsForBFieldStudies
int nEventsChambersBothSides
int nEventsOverlappingChambers
std::string histogramFileName
int nEventsCertainChamber
Definition at line 1104 of file CSCSkim.cc.
References funct::abs(), MuonSubdetId::CSC, l1tTrackerHTMiss_cfi::deltaZ, hcalRecHitTable_cff::detId, spr::goodTrack(), trackingPlots::hp, DetId::Muon, HLT_2024v14_cff::muon, dqmiodumpmetadata::n, nCSCHitsMin, nTrHitsMin, nValidHitsMin, pMin, redChiSqMax, rExtMax, mathSSE::sqrt(), HLT_2024v14_cff::track, DiMuonV_cfg::tracks, zInnerMax, zLengthMin, and zLengthTrMin.
Referenced by filter().
1107 bool acceptThisEvent =
false;
1112 int nGoodSAMuons = 0;
1113 for (reco::TrackCollection::const_iterator
muon = saMuons->begin();
muon != saMuons->end(); ++
muon) {
1114 float preco =
muon->p();
1117 GlobalPoint iPnt(innerPo.x(), innerPo.y(), innerPo.z());
1119 GlobalPoint oPnt(outerPo.x(), outerPo.y(), outerPo.z());
1120 float zLength =
abs(iPnt.z() - oPnt.z());
1123 GlobalVector iP(innerMom.x(), innerMom.y(), innerMom.z());
1125 GlobalVector oP(outerMom.x(), outerMom.y(), outerMom.z());
1127 const float zRef = 300.;
1128 float xExt = 10000.;
1129 float yExt = 10000.;
1130 if (
abs(oPnt.z()) <
abs(iPnt.z())) {
1133 deltaZ = zRef - oPnt.z();
1135 deltaZ = -zRef - oPnt.z();
1137 xExt = oPnt.x() +
deltaZ * oP.x() / oP.z();
1138 yExt = oPnt.y() +
deltaZ * oP.y() / oP.z();
1142 deltaZ = zRef - iPnt.z();
1144 deltaZ = -zRef - iPnt.z();
1146 xExt = iPnt.x() +
deltaZ * iP.x() / iP.z();
1147 yExt = iPnt.y() +
deltaZ * iP.y() / iP.z();
1149 float rExt =
sqrt(xExt * xExt + yExt * yExt);
1163 if (
abs(iPnt.z()) <
abs(iPnt.z())) {
1182 int nGoodTracks = 0;
1184 float preco =
track->p();
1185 int n =
track->recHitsSize();
1188 GlobalPoint iPnt(innerPo.x(), innerPo.y(), innerPo.z());
1190 GlobalPoint oPnt(outerPo.x(), outerPo.y(), outerPo.z());
1191 float zLength =
abs(iPnt.z() - oPnt.z());
1194 GlobalVector iP(innerMom.x(), innerMom.y(), innerMom.z());
1196 GlobalVector oP(outerMom.x(), outerMom.y(), outerMom.z());
1198 const float zRef = 300.;
1199 float xExt = 10000.;
1200 float yExt = 10000.;
1201 if (
abs(oPnt.z()) >
abs(iPnt.z())) {
1204 deltaZ = zRef - oPnt.z();
1206 deltaZ = -zRef - oPnt.z();
1208 xExt = oPnt.x() +
deltaZ * oP.x() / oP.z();
1209 yExt = oPnt.y() +
deltaZ * oP.y() / oP.z();
1213 deltaZ = zRef - iPnt.z();
1215 deltaZ = -zRef - iPnt.z();
1217 xExt = iPnt.x() +
deltaZ * iP.x() / iP.z();
1218 yExt = iPnt.y() +
deltaZ * iP.y() / iP.z();
1220 float rExt =
sqrt(xExt * xExt + yExt * yExt);
1233 int nGoodGlobalMuons = 0;
1234 for (reco::MuonCollection::const_iterator global = gMuons->begin(); global != gMuons->end(); ++global) {
1235 if (global->isGlobalMuon()) {
1236 float pDef = global->p();
1237 float redChiSq = global->globalTrack()->normalizedChi2();
1241 int nTrackerHits =
hp.numberOfValidTrackerHits();
1247 hit != (global->globalTrack())->recHitsEnd();
1257 bool goodGlobalMuon =
1260 if (goodGlobalMuon) {
1271 acceptThisEvent = ((nGoodSAMuons > 0) && (nGoodTracks > 0)) || (nGoodGlobalMuons > 0);
1273 return acceptThisEvent;
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Abs< T >::type abs(const T &t)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition at line 375 of file CSCSkim.cc.
References CSCDetId::chamber(), chamberSerial(), dtChamberEfficiency_cfi::cscSegments, CSCDetId::endcap(), nano_mu_digi_cff::float, hxnHitChambers, hxnRecHits, hxnRecHitsSel, hxnSegments, mps_fire::i, createfilelist::int, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), LogDebug, makeHistograms, minimumHitChambers, minimumSegments, nEventsChambersBothSides, nLayersWithHitsMinimum, funct::pow(), CSCDetId::ring(), CSCDetId::station(), and typeOfSkim.
Referenced by filter().
378 int nRecHits = cscRecHits->size();
382 for (
int i = 0;
i < 600;
i++) {
391 for (recIt = cscRecHits->begin(); recIt != cscRecHits->end(); recIt++) {
394 int kEndcap = idrec.
endcap();
395 int kRing = idrec.
ring();
396 int kStation = idrec.
station();
397 int kChamber = idrec.
chamber();
401 int kSerial =
chamberSerial(kEndcap, kStation, kRing, kChamber);
406 cntRecHit[kSerial] += kDigit;
414 int nChambersWithMinimalHits = 0;
415 int nChambersWithMinimalHitsPOS = 0;
416 int nChambersWithMinimalHitsNEG = 0;
418 for (
int i = 0;
i < 600;
i++) {
419 if (cntRecHit[
i] > 0) {
420 int nLayersWithHits = 0;
422 for (
int j = 5;
j > -1;
j--) {
423 float digit =
dummy /
pow((
float)10., (
float)
j);
424 int kCount = (
int)digit;
431 nChambersWithMinimalHitsPOS++;
433 nChambersWithMinimalHitsNEG++;
438 nChambersWithMinimalHits = nChambersWithMinimalHitsPOS + nChambersWithMinimalHitsNEG;
454 if (nChambersWithMinimalHits > 0) {
464 bool chambersOnBothSides =
467 if (chambersOnBothSides) {
471 bool selectEvent =
false;
473 selectEvent = basicEvent;
476 selectEvent = chambersOnBothSides;
480 LogDebug(
"[CSCSkim]") <<
"----- nRecHits = " << nRecHits
481 <<
"\tnChambersWithMinimalHits = " << nChambersWithMinimalHits <<
"\tnSegments = " << nSegments
482 <<
"\tselect? " << selectEvent << std::endl;
int nLayersWithHitsMinimum
int nEventsChambersBothSides
C::const_iterator const_iterator
constant access iterator type
static const std::string kLayer("layer")
int chamberSerial(int kE, int kS, int kR, int kCh)
Power< A, B >::type pow(const A &a, const B &b)
Definition at line 592 of file CSCSkim.cc.
References CSCDetId::chamber(), chamberSerial(), dtChamberEfficiency_cfi::cscSegments, CSCDetId::endcap(), nano_mu_digi_cff::float, mps_fire::i, createfilelist::int, dqmiolumiharvest::j, kLayer(), CSCDetId::layer(), LogDebug, makeHistogramsForMessyEvents, mevnChambers0, mevnChambers1, mevnRecHits0, mevnRecHits1, mevnSegments0, mevnSegments1, nLayersWithHitsMinimum, funct::pow(), CSCDetId::ring(), and CSCDetId::station().
Referenced by filter().
595 int nRecHits = cscRecHits->size();
599 for (
int i = 0;
i < 600;
i++) {
608 for (recIt = cscRecHits->begin(); recIt != cscRecHits->end(); recIt++) {
611 int kEndcap = idrec.
endcap();
612 int kRing = idrec.
ring();
613 int kStation = idrec.
station();
614 int kChamber = idrec.
chamber();
618 int kSerial =
chamberSerial(kEndcap, kStation, kRing, kChamber);
623 cntRecHit[kSerial] += kDigit;
631 int nChambersWithMinimalHits = 0;
632 int nChambersWithMinimalHitsPOS = 0;
633 int nChambersWithMinimalHitsNEG = 0;
635 for (
int i = 0;
i < 600;
i++) {
636 if (cntRecHit[
i] > 0) {
637 int nLayersWithHits = 0;
639 for (
int j = 5;
j > -1;
j--) {
640 float digit =
dummy /
pow((
float)10., (
float)
j);
641 int kCount = (
int)digit;
648 nChambersWithMinimalHitsPOS++;
650 nChambersWithMinimalHitsNEG++;
655 nChambersWithMinimalHits = nChambersWithMinimalHitsPOS + nChambersWithMinimalHitsNEG;
672 double dummy = (double)nRecHits;
676 dummy = (double)nChambersWithMinimalHits;
680 dummy = (double)nSegments;
691 bool selectEvent =
false;
692 if ((nRecHits > 54) && (nChambersWithMinimalHits > 5)) {
697 LogDebug(
"[CSCSkim]") <<
"----- nRecHits = " << nRecHits
698 <<
"\tnChambersWithMinimalHits = " << nChambersWithMinimalHits <<
"\tnSegments = " << nSegments
699 <<
"\tselect? " << selectEvent << std::endl;
bool makeHistogramsForMessyEvents
int nLayersWithHitsMinimum
C::const_iterator const_iterator
constant access iterator type
static const std::string kLayer("layer")
int chamberSerial(int kE, int kS, int kR, int kCh)
Power< A, B >::type pow(const A &a, const B &b)
void CSCSkim::endJob |
( |
void |
| ) |
|
|
overridevirtual |
Reimplemented from edm::one::EDFilterBase.
Definition at line 167 of file CSCSkim.cc.
References nano_mu_digi_cff::float, HLT_2024v14_cff::fraction, hxnHitChambers, hxnRecHits, hxnRecHitsSel, hxnSegments, LogDebug, makeHistograms, makeHistogramsForMessyEvents, mevnChambers0, mevnChambers1, mevnRecHits0, mevnRecHits1, mevnSegments0, mevnSegments1, nEventsAnalyzed, nEventsCertainChamber, nEventsChambersBothSides, nEventsDTOverlap, nEventsForBFieldStudies, nEventsHaloLike, nEventsLongSATrack, nEventsMessy, nEventsOverlappingChambers, nEventsSelected, theHistogramFile, and typeOfSkim.
175 LogInfo(
"[CSCSkim] Summary") <<
"\n\n\t====== CSCSkim ==========================================================\n" 176 <<
"\t\ttype of skim ...............................\t" <<
typeOfSkim <<
"\n" 179 <<
"\tfraction= " <<
fraction << std::endl
182 <<
"\t\tevents lots of hit chambers . \t" <<
nEventsMessy <<
"\n" 188 <<
"\t=========================================================================\n\n";
192 LogDebug(
"[CSCSkim]") <<
"======= write out my histograms ====\n";
bool makeHistogramsForMessyEvents
int nEventsForBFieldStudies
int nEventsChambersBothSides
int nEventsOverlappingChambers
Log< level::Info, false > LogInfo
int nEventsCertainChamber
Implements edm::one::EDFilterBase.
Definition at line 215 of file CSCSkim.cc.
References dtChamberEfficiency_cfi::cscSegments, doBFieldStudySelection(), doCertainChamberSelection(), doCSCSkimming(), doDTOverlap(), doHaloLike(), doLongSATrack(), doMessyEventSkimming(), doOverlapSkimming(), options_cfi::eventSetup, glm_token, iEvent, iRun, LogDebug, m_CSCGeomToken, nEventsAnalyzed, nEventsCertainChamber, nEventsDTOverlap, nEventsForBFieldStudies, nEventsHaloLike, nEventsLongSATrack, nEventsMessy, nEventsOverlappingChambers, nEventsSelected, rh_token, sam_token, sdr_token, sds_token, seg_token, DigiDM_cff::strips, DiMuonV_cfg::tracks, trk_token, typeOfSkim, wdr_token, wds_token, and DigiDM_cff::wires.
219 iRun =
event.id().run();
220 iEvent =
event.id().event();
231 if (
event.eventAuxiliary().isRealData()) {
241 event.getByToken(
rh_token, cscRecHits);
267 bool basicEvent =
false;
273 bool goodOverlapEvent =
false;
276 if (goodOverlapEvent) {
282 bool messyEvent =
false;
291 bool hasChamber =
false;
300 bool DTOverlapCandidate =
false;
303 if (DTOverlapCandidate) {
309 bool HaloLike =
false;
318 bool LongSATrack =
false;
327 bool GoodForBFieldStudy =
false;
330 if (GoodForBFieldStudy) {
336 bool selectThisEvent =
false;
338 selectThisEvent = basicEvent;
341 selectThisEvent = goodOverlapEvent;
344 selectThisEvent = messyEvent;
347 selectThisEvent = hasChamber;
350 selectThisEvent = DTOverlapCandidate;
353 selectThisEvent = HaloLike;
356 selectThisEvent = LongSATrack;
359 selectThisEvent = GoodForBFieldStudy;
362 if (selectThisEvent) {
366 return selectThisEvent;
edm::EDGetTokenT< CSCSegmentCollection > seg_token
edm::EDGetTokenT< reco::TrackCollection > sam_token
int nEventsForBFieldStudies
edm::EDGetTokenT< CSCWireDigiCollection > wds_token
bool doLongSATrack(edm::Handle< reco::TrackCollection > saTracks)
bool doOverlapSkimming(edm::Handle< CSCSegmentCollection > cscSegments)
bool doDTOverlap(edm::Handle< CSCSegmentCollection > cscSegments)
int nEventsOverlappingChambers
edm::EDGetTokenT< reco::TrackCollection > trk_token
edm::EDGetTokenT< reco::MuonCollection > glm_token
edm::EDGetTokenT< CSCStripDigiCollection > sds_token
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
bool doCSCSkimming(edm::Handle< CSCRecHit2DCollection > cscRecHits, edm::Handle< CSCSegmentCollection > cscSegments)
bool doCertainChamberSelection(edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips)
bool doBFieldStudySelection(edm::Handle< reco::TrackCollection > saTracks, edm::Handle< reco::TrackCollection > Tracks, edm::Handle< reco::MuonCollection > gMuons)
int nEventsCertainChamber
bool doMessyEventSkimming(edm::Handle< CSCRecHit2DCollection > cscRecHits, edm::Handle< CSCSegmentCollection > cscSegments)
const edm::ESGetToken< CSCGeometry, MuonGeometryRecord > m_CSCGeomToken
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers.hcal.doNoise = False simEcalUnsuppressedDigis.doNoise = False mix.digitizers.ecal.doNoise = False simEcalUnsuppressedDigis.doESNoise = False simSiPixelDigis.AddNoise = False mix.digitizers.pixel.AddNoise = False simSiStripDigis.Noise = False mix.digitizers.strip.AddNoise = False
edm::EDGetTokenT< CSCWireDigiCollection > wdr_token
edm::EDGetTokenT< CSCStripDigiCollection > sdr_token
bool doHaloLike(edm::Handle< CSCSegmentCollection > cscSegments)