20 m_dbxrange(), m_dbxrangelat(),
21 m_bxrange(), m_bxrangelat(),
22 m_bxcyclerange(), m_bxcyclerangelat(),
23 m_dbxcyclerange(), m_dbxcyclerangelat(),
25 m_dbxgenericrange(),m_dbxgenericfirst(0),m_dbxgenericlast(1),
33 m_partition(iConfig.getUntrackedParameter<std::
string>(
"partitionName",
"Any")),
35 m_apvmodes(iConfig.getUntrackedParameter<std::vector<int> >(
"apvModes",std::vector<int>())),
36 m_dbxrange(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxRange",std::vector<int>())),
37 m_dbxrangelat(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxRangeLtcyAware",std::vector<int>())),
38 m_bxrange(iConfig.getUntrackedParameter<std::vector<int> >(
"absBXRange",std::vector<int>())),
39 m_bxrangelat(iConfig.getUntrackedParameter<std::vector<int> >(
"absBXRangeLtcyAware",std::vector<int>())),
40 m_bxcyclerange(iConfig.getUntrackedParameter<std::vector<int> >(
"absBXInCycleRange",std::vector<int>())),
41 m_bxcyclerangelat(iConfig.getUntrackedParameter<std::vector<int> >(
"absBXInCycleRangeLtcyAware",std::vector<int>())),
42 m_dbxcyclerange(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxInCycleRange",std::vector<int>())),
43 m_dbxcyclerangelat(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxInCycleRangeLtcyAware",std::vector<int>())),
44 m_dbxtrpltrange(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxTripletRange",std::vector<int>())),
45 m_dbxgenericrange(iConfig.getUntrackedParameter<std::vector<int> >(
"dbxGenericRange",std::vector<int>())),
46 m_dbxgenericfirst(iConfig.getUntrackedParameter<unsigned int>(
"dbxGenericFirst",0)),
47 m_dbxgenericlast(iConfig.getUntrackedParameter<unsigned int>(
"dbxGenericLast",1))
82 const std::vector<int> dummy;
89 const std::vector<int> apvphases =
getAPVPhase(iEvent);
96 const std::vector<int> apvphases =
getAPVPhase(event);
108 const std::vector<int> apvphases = _apvphases;
117 for(std::vector<int>::const_iterator wantedmode =
m_apvmodes.begin();wantedmode!=
m_apvmodes.end();++wantedmode) {
118 modeok = modeok || (apvmode == *wantedmode);
120 if(!modeok)
return false;
139 for(std::vector<int>::const_iterator phase=apvphases.begin();phase!=apvphases.end();++phase) {
142 selected = selected && phaseselected;
145 for(std::vector<int>::const_iterator phase=apvphases.begin();phase!=apvphases.end();++phase) {
147 *phase>=0 && latency>=0);
149 selected = selected && phaseselected;
152 for(std::vector<int>::const_iterator phase=apvphases.begin();phase!=apvphases.end();++phase) {
155 selected = selected && phaseselected;
158 for(std::vector<int>::const_iterator phase=apvphases.begin();phase!=apvphases.end();++phase) {
160 he.
depth()!=0 && *phase>=0 && latency>=0);
162 selected = selected && phaseselected;
182 const int latency = apvlat->singleLatency()!=255 ? apvlat->singleLatency(): -1;
201 if(apvlat->singleReadOutMode()==1) mode = 47;
202 if(apvlat->singleReadOutMode()==0) mode = 37;
217 const std::vector<int> dummy;
224 const std::vector<int> phases = apvPhases->getPhases(
m_partition.c_str());
264 return ((range.size()==0 ||
265 (range.size()==1 && range[0]<0) ||
266 (range.size()==2 && range[0]<0 && range[1]<0)));
272 bool cut1 = range.size()<1 || range[0]<0 || (extra && bx >= range[0]);
273 bool cut2 = range.size()<2 || range[1]<0 || (extra && bx <= range[1]);
275 if(range.size()>=2 && range[0]>=0 && range[1]>=0 && (range[0] > range[1])) {
286 std::string msgcategory =
"EventWithHistoryFilterConfiguration";
301 edm::LogInfo(msgcategory.c_str()) <<
"historyProduct: " << historyTag <<
" APVCyclePhase: " << apvphaseTag;
unsigned int depth() const
std::vector< int > m_dbxcyclerange
T getUntrackedParameter(std::string const &, T const &) const
std::vector< int > m_bxcyclerange
long long deltaBX(const unsigned int ev2, const unsigned int ev1) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const bool isAPVPhaseNotNeeded() const
const bool is_selected(const EventWithHistory &he, const edm::EventSetup &iSetup, const std::vector< int > &apvphases) const
long long absoluteBX(const unsigned int ev1) const
long long absoluteBXinCycle(const unsigned int ev1, const int bx0) const
const std::vector< int > getAPVPhase(const edm::Event &iEvent) const
std::vector< int > m_dbxgenericrange
const bool isAPVModeNotNeeded() const
unsigned int m_dbxgenericfirst
edm::EDGetTokenT< APVCyclePhaseCollection > m_APVPhaseToken
void printConfig(const edm::InputTag &historyTag, const edm::InputTag &apvphaseTag) const
std::vector< int > m_dbxrangelat
void set(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
const int getAPVMode(const edm::EventSetup &iSetup) const
std::vector< int > m_dbxtrpltrange
edm::EDGetTokenT< EventWithHistory > m_historyToken
const int getAPVLatency(const edm::EventSetup &iSetup) const
const bool selected(const EventWithHistory &he, const edm::EventSetup &iSetup) const
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
const bool isInRange(const long long bx, const std::vector< int > &range, const bool extra) const
std::vector< int > m_bxrangelat
const bool isAPVLatencyNotNeeded() const
std::vector< int > m_bxcyclerangelat
std::vector< int > m_dbxcyclerangelat
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
const bool isCutInactive(const std::vector< int > &range) const
std::vector< int > m_apvmodes
std::vector< int > m_dbxrange
unsigned int m_dbxgenericlast
std::vector< int > m_bxrange