|
| BSCTrigger (const edm::ParameterSet &) |
|
| ~BSCTrigger () override |
|
| EDProducer ()=default |
|
| EDProducer (const EDProducer &)=delete |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndProcessBlocks () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
EDProducer & | operator= (const EDProducer &)=delete |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDProducerBase () 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::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 & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, 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::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef EDProducerBase | 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 &descriptions) |
|
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) |
|
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 44 of file BSCTrigger.cc.
Implements edm::global::EDProducerBase.
Definition at line 92 of file BSCTrigger.cc.
93 std::vector<L1GtTechnicalTrigger> ttVec(
ttBits_.size());
98 if (!cf.failedToGet()) {
99 std::vector<float> EnergyBX(32);
100 std::vector<float> EnergyBXMinusDt(32);
102 for (
int c = 0;
c < 32; ++
c) {
104 EnergyBXMinusDt[
c] = 0;
110 LogDebug(
"BSCTrig") <<
" ----------------new event ---with " << theBSCHitContainer.size() <<
" hits in the BSC";
113 for (
auto itHit = theBSCHitContainer.begin(); itHit != theBSCHitContainer.end(); ++itHit) {
114 float zh = itHit->entryPoint().z() / 10;
115 int id =
getBSCNum(itHit->detUnitId(), zh);
118 float t = itHit->timeOfFlight();
121 float rh =
sqrt(itHit->entryPoint().x() * itHit->entryPoint().x() +
122 itHit->entryPoint().y() * itHit->entryPoint().y()) /
124 LogTrace(
"BSCTrig") <<
" BSC Num " <<
id <<
" z=" << zh <<
" isZplus=" <<
isZplus(
id)
125 <<
" Hit DetId=" <<
getBSCNum(
id, zh) <<
" r=" << rh <<
" isInner=" <<
isInner(
id);
126 LogTrace(
"BSCTrig") <<
" Hit time=" <<
t <<
" accepted range=[" << dt2 <<
"," << dt1 <<
"] from a "
127 <<
abs(itHit->particleType()) <<
" with energy " << itHit->energyLoss();
129 if (fabs(
t) > dt1 || fabs(
t) < dt2)
132 EnergyBX[
id] += itHit->energyLoss();
134 EnergyBXMinusDt[
id] += itHit->energyLoss();
138 int ZMinnerBX = 0, ZMouterBX = 0;
139 int ZPinnerBX = 0, ZPouterBX = 0;
140 int ZMinnerBXMinusDt = 0, ZMouterBXMinusDt = 0;
141 int ZPinnerBXMinusDt = 0, ZPouterBXMinusDt = 0;
143 constexpr
float MipFraction = 0.5;
144 constexpr
float MipEnergy = 0.0027;
145 constexpr
float theThreshold = MipFraction * MipEnergy;
146 for (
unsigned int ipad = 0; ipad < 32; ipad++) {
148 LogTrace(
"BSCTrig") <<
" EnergyBX[" << ipad <<
"]=" << EnergyBX[ipad];
150 if (EnergyBX[ipad] > theThreshold) {
164 if (EnergyBXMinusDt[ipad] > theThreshold) {
180 LogTrace(
"BSCTrig") <<
" Zplus I=" << ZPinnerBX <<
" Zminus I=" << ZMinnerBX <<
" Zplus O=" << ZPouterBX
181 <<
" Zminus O=" << ZMouterBX;
185 if (ZPinnerBX >= 1 && ZMinnerBX >= 1)
189 if (ZPinnerBX >= 2 && ZMinnerBX >= 2)
193 if (ZPinnerBX + ZMinnerBX + ZPouterBX + ZMouterBX >= 1)
197 if (ZPinnerBX == 8 && ZMinnerBX == 8)
202 if (ZPinnerBX >= 1 && ZMinnerBXMinusDt >= 1)
206 if (ZPouterBX >= 1 && ZMouterBXMinusDt >= 1)
210 if (ZMinnerBX >= 1 && ZPinnerBXMinusDt >= 1)
214 if (ZMouterBX >= 1 && ZPouterBXMinusDt >= 1)
219 if (ZPinnerBX + ZPouterBX >= 1 && ZMinnerBX + ZMouterBX >= 1)
223 if (ZPinnerBX + ZPouterBX >= 2 && ZMinnerBX + ZMouterBX >= 2)
234 for (
unsigned i = 0;
i <
ttBits_.size(); ++
i) {
267 output.setGtTechnicalTrigger(ttVec);
References funct::abs(), c, getBSCNum(), mps_fire::i, triggerObjects_cff::id, iEvent, edm::isDebugEnabled(), isInner(), isZplus(), LogDebug, LogTrace, eostools::move(), names_, convertSQLitetoXML_cfg::output, mathSSE::sqrt(), submitPVValidationJobs::t, theCoincidence_, theHitsToken_, thePutToken_, theResolution_, and ttBits_.