1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include "DataFormats/CSCDigi/interface/CSCConstants.h"
#include "EventFilter/CSCRawToDigi/interface/CSCDigiToRawAccept.h"
CSCDetId CSCDigiToRawAccept::chamberID(const CSCDetId& cscDetId) {
CSCDetId chamberId = cscDetId.chamberId();
if (chamberId.ring() == 4) {
chamberId = CSCDetId(chamberId.endcap(), chamberId.station(), 1, chamberId.chamber(), 0);
}
return chamberId;
}
// older function for pretriggers BX objects
bool CSCDigiToRawAccept::accept(
const CSCDetId& cscId, const CSCCLCTPreTriggerCollection& lcts, int bxMin, int bxMax, int nominalBX) {
if (bxMin == -999)
return true;
CSCDetId chamberId = chamberID(cscId);
CSCCLCTPreTriggerCollection::Range lctRange = lcts.get(chamberId);
bool result = false;
for (CSCCLCTPreTriggerCollection::const_iterator lctItr = lctRange.first; lctItr != lctRange.second; ++lctItr) {
int bx = *lctItr - nominalBX;
if (bx >= bxMin && bx <= bxMax) {
result = true;
break;
}
}
return result;
}
bool CSCDigiToRawAccept::accept(const CSCDetId& cscId,
const CSCCLCTPreTriggerDigiCollection& lcts,
int bxMin,
int bxMax,
int nominalBX,
std::vector<bool>& preTriggerInCFEB) {
if (bxMin == -999)
return true;
bool atLeastOnePreTrigger = false;
CSCDetId chamberId = chamberID(cscId);
CSCCLCTPreTriggerDigiCollection::Range lctRange = lcts.get(chamberId);
for (CSCCLCTPreTriggerDigiCollection::const_iterator lctItr = lctRange.first; lctItr != lctRange.second; ++lctItr) {
int bx = lctItr->getBX() - nominalBX;
if (bx >= bxMin && bx <= bxMax) {
atLeastOnePreTrigger = true;
// save the location of all pretriggers
preTriggerInCFEB[lctItr->getCFEB()] = true;
}
}
return atLeastOnePreTrigger;
}
|