20 uint32_t
detid =
id.det();
21 uint32_t hitType = (uint32_t) hit.
getType();
30 uint32_t subdet =
id.subdetId();
50 layer = ((
DTLayerId(
id.rawId()).station()-1)<<2) + (
DTLayerId(
id.rawId()).superLayer()-1);
81 uint32_t bit = (pattern >>
i) & 0x1;
105 uint16_t bitEndOffset = (position+1) *
HitSize;
106 uint8_t secondWord = (bitEndOffset >> 5);
107 uint8_t secondWordBits = bitEndOffset & (32-1);
108 if (secondWordBits >=
HitSize) {
109 uint8_t lowBitsToTrash = secondWordBits -
HitSize;
110 uint32_t myResult = (
hitPattern_[secondWord] >> lowBitsToTrash) & ((1 << HitSize)-1);
113 uint8_t firstWordBits =
HitSize - secondWordBits;
114 uint32_t firstWordBlock =
hitPattern_[secondWord-1] >> (32-firstWordBits);
115 uint32_t secondWordBlock =
hitPattern_[secondWord] & ((1<<secondWordBits)-1);
116 uint32_t myResult = firstWordBlock + (secondWordBlock << firstWordBits);
122 if (pattern == 0)
return false;
128 if (pattern == 0)
return false;
134 if (pattern == 0)
return 999999;
220 if (pattern == 0)
return 999999;
225 if (pattern == 0)
return 999999;
232 if (pattern == 0)
return 999999;
237 if (pattern == 0)
return 999999;
255 if (stat <= 1)
return ((sss >> 1) & 1) + 1;
316 if (pattern != 0) count++;
325 if (pattern == 0)
break;
750 memset(hasMono, 0,
sizeof(hasMono));
752 memset(hasStereo, 0,
sizeof(hasStereo));
754 for (
int i = 0;
i < nHits;
i++) {
777 if (hasMono[
i][
j] && hasStereo[
i][
j])
784 uint32_t tk_substr_layer =
801 uint32_t layerCase = 999999;
805 if (pattern == 0)
break;
806 if ((pattern & mask) == tk_substr_layer)
809 if (hitType < layerCase)
812 if (hitType == 3) layerCase = 2;
821 uint32_t tk_substr_layer =
835 uint32_t monoStereo = 0;
839 if (pattern == 0)
break;
840 if ((pattern & mask) == tk_substr_layer)
880 for (uint32_t layer=1; layer<=3; layer++) {
889 for (uint32_t layer=1; layer<=2; layer++) {
898 for (uint32_t layer=1; layer<=4; layer++) {
907 for (uint32_t layer=1; layer<=3; layer++) {
916 for (uint32_t layer=1; layer<=6; layer++) {
925 for (uint32_t layer=1; layer<=9; layer++) {
951 for (uint32_t layer=1; layer<=3; layer++) {
960 for (uint32_t layer=1; layer<=2; layer++) {
969 for (uint32_t layer=1; layer<=4; layer++) {
978 for (uint32_t layer=1; layer<=3; layer++) {
987 for (uint32_t layer=1; layer<=6; layer++) {
996 for (uint32_t layer=1; layer<=9; layer++) {
1022 for (uint32_t layer=1; layer<=3; layer++) {
1031 for (uint32_t layer=1; layer<=2; layer++) {
1040 for (uint32_t layer=1; layer<=4; layer++) {
1049 for (uint32_t layer=1; layer<=3; layer++) {
1058 for (uint32_t layer=1; layer<=6; layer++) {
1067 for (uint32_t layer=1; layer<=9; layer++) {
1093 for (uint32_t layer=1; layer<=3; layer++) {
1102 for (uint32_t layer=1; layer<=2; layer++) {
1111 for (uint32_t layer=1; layer<=4; layer++) {
1120 for (uint32_t layer=1; layer<=3; layer++) {
1129 for (uint32_t layer=1; layer<=6; layer++) {
1138 for (uint32_t layer=1; layer<=9; layer++) {
1151 stream <<
"tracker";
1158 stream <<
"\tcsc ring " <<
getCSCRing(pattern);
1162 stream <<
"(UNKNOWN Muon SubStructure!) \tsubsubstructure " <<
getSubStructure(pattern);
1165 stream <<
"\tlayer " <<
getLayer(pattern);
1167 stream <<
"\thit type " <<
getHitType(pattern);
1168 stream << std::endl;
1173 stream <<
"HitPattern" << std::endl;
1176 std::ios_base::fmtflags
flags = stream.flags();
1177 stream.setf ( std::ios_base::hex, std::ios_base::basefield );
1178 stream.setf ( std::ios_base::showbase );
1181 stream << pattern << std::endl;
1183 stream.flags(flags);
1197 return id.isStereo();
1202 return id.isStereo();
1207 return id.isStereo();
1212 return id.isStereo();
1224 int stations[4] = { 0,0,0,0 };
1227 if (pattern == 0)
break;
1230 (hitType == -1 ||
int(
getHitType(pattern)) == hitType)) {
1234 return stations[0]+stations[1]+stations[2]+stations[3];
1254 if (pattern == 0)
break;
1256 (hitType == -1 ||
int(
getHitType(pattern)) == hitType)) {
1258 if (ret == 0 || stat < ret) ret = stat;
1268 if (pattern == 0)
break;
1270 (hitType == -1 ||
int(
getHitType(pattern)) == hitType)) {
1272 if (ret == 0 || stat > ret) ret = stat;
1286 int stations[4] = { 0,0,0,0 };
1289 if (pattern == 0)
break;
1294 return stations[0]+stations[1]+stations[2]+stations[3];
1298 int stations[4] = { 0,0,0,0 };
1301 if (pattern == 0)
break;
1306 return stations[0]+stations[1]+stations[2]+stations[3];
1310 int stations[4][2] = { {0,0}, {0,0}, {0,0}, {0,0} };
1313 if (pattern == 0)
break;
1318 return stations[0][0]*stations[0][1] + stations[1][0]*stations[1][1] + stations[2][0]*stations[2][1] + stations[3][0]*stations[3][1];
int stripTOBLayersWithMeasurement() const
int cscStationsWithAnyHits() const
int dtStationsWithAnyHits() const
int numberOfBadMuonRPCHits() const
int rpcStationsWithValidHits() const
int outermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
int numberOfLostPixelEndcapHits() const
int numberOfValidHits() const
int pixelBarrelLayersNull() const
int stripTIBLayersNull() const
unsigned int layer() const
layer id
uint32_t getSubStructure(uint32_t pattern) const
bool muonDTHitFilter(uint32_t pattern) const
static uint32_t isStereo(DetId)
uint32_t hitPattern_[PatternSize]
int dtStationsWithValidHits() const
int stripLayersNull() const
int stripTIBLayersWithMeasurement() const
int stripTECLayersNull() const
int numberOfValidMuonHits() const
static const unsigned short SideOffset
int muonStations(int subdet, int hitType) const
subdet = 0(all), 1(DT), 2(CSC), 3(RPC); hitType=-1(all), 0=valid, 3=bad
int numberOfLostMuonHits() const
bool trackerHitFilter(uint32_t pattern) const
static const unsigned short SubstrOffset
int muonStationsWithBadHits() const
int innermostMuonStationWithBadHits() const
uint32_t getTrackerMonoStereo(uint32_t substr, uint32_t layer) const
uint32_t getCSCRing(uint32_t pattern) const
CSC ring (1-4). Only valid for muon CSC patterns, of course.
int numberOfDTStationsWithRPhiView() const
int stripLayersWithoutMeasurement() const
std::vector< Variable::Flags > flags
int stripTIDLayersWithoutMeasurement() const
bool stripTIBHitFilter(uint32_t pattern) const
int numberOfLostTrackerHits() const
void set(const I &begin, const I &end)
uint32_t getLayer(uint32_t pattern) const
void print(std::ostream &stream=std::cout) const
int rpcStationsWithAnyHits() const
int outermostMuonStationWithAnyHits() const
int pixelLayersWithMeasurement() const
static const unsigned short PatternSize
int trackerLayersWithoutMeasurement() const
int numberOfValidStripLayersWithMonoAndStereo() const
int pixelBarrelLayersWithoutMeasurement() const
int trackerLayersWithMeasurement() const
static const unsigned short HitTypeMask
int pixelEndcapLayersWithMeasurement() const
int numberOfValidStripTIDHits() const
static int position[TOTALCHAMBERS][3]
int stripLayersTotallyOffOrBad() const
unsigned int layer() const
layer id
int numberOfValidTrackerHits() const
int numberOfLostStripTIDHits() const
int numberOfLostPixelHits() const
bool stripTOBHitFilter(uint32_t pattern) const
bool hasValidHitInFirstPixelEndcap() const
bool type_3_HitFilter(uint32_t pattern) const
int outermostMuonStationWithBadHits() const
int muonStationsWithAnyHits() const
int outermostMuonStationWithValidHits() const
int numberOfLostStripHits() const
int stripTOBLayersTotallyOffOrBad() const
bool muonRPCHitFilter(uint32_t pattern) const
int numberOfValidPixelEndcapHits() const
int numberOfBadMuonDTHits() const
int rpcStationsWithBadHits() const
int stripTIDLayersTotallyOffOrBad() const
int innermostMuonStationWithAnyHits() const
int numberOfValidStripHits() const
int stripTIDLayersWithMeasurement() const
bool pixelEndcapHitFilter(uint32_t pattern) const
bool muonCSCHitFilter(uint32_t pattern) const
static const unsigned short SubDetectorMask
int numberOfLostHits() const
int numberOfValidPixelHits() const
int stripTECLayersTotallyOffOrBad() const
bool stripHitFilter(uint32_t pattern) const
int numberOfLostMuonCSCHits() const
int stripTIBLayersWithoutMeasurement() const
int dtStationsWithBadHits() const
int numberOfDTStationsWithRZView() const
bool pixelBarrelHitFilter(uint32_t pattern) const
int numberOfValidStripTECHits() const
int numberOfValidMuonRPCHits() const
bool type_1_HitFilter(uint32_t pattern) const
int stripTIDLayersNull() const
unsigned int offset(bool)
int numberOfLostPixelBarrelHits() const
static const unsigned short HitTypeOffset
bool validHitFilter(uint32_t pattern) const
bool pixelHitFilter(uint32_t pattern) const
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
unsigned int disk() const
disk id
int numberOfLostStripTOBHits() const
int numberOfDTStationsWithBothViews() const
static const unsigned short HitSize
int numberOfValidStripTIBHits() const
static uint32_t getSide(uint32_t pattern)
int cscStationsWithBadHits() const
uint32_t getRPCLayer(uint32_t pattern) const
RPC layer: for station 1 and 2, layer = 1(inner) or 2(outer); for station 3, 4 layer is always 0...
int numberOfValidMuonDTHits() const
bool type_2_HitFilter(uint32_t pattern) const
uint32_t getDTSuperLayer(uint32_t pattern) const
DT superlayer (1-3). Only valid for muon DT patterns, of course.
int innermostMuonStationWithHits(int hitType) const
hitType=-1(all), 0=valid, 3=bad; 0 = no stations at all
uint32_t getSubSubStructure(uint32_t pattern) const
static const unsigned short SideMask
int trackerLayersNull() const
int pixelEndcapLayersWithoutMeasurement() const
int cscStationsWithValidHits() const
int numberOfBadHits() const
static const unsigned short SubDetectorOffset
int muonStationsWithValidHits() const
int pixelBarrelLayersWithMeasurement() const
int numberOfLostStripTIBHits() const
unsigned int wheel() const
wheel id
int pixelLayersWithoutMeasurement() const
int stripLayersWithMeasurement() const
unsigned int layer() const
layer id
int numberOfLostMuonDTHits() const
int numberOfValidStripTOBHits() const
int stripTOBLayersNull() const
uint32_t getTrackerLayerCase(uint32_t substr, uint32_t layer) const
int pixelBarrelLayersTotallyOffOrBad() const
uint32_t getHitType(uint32_t pattern) const
int numberOfLostMuonRPCHits() const
static const unsigned short SubstrMask
static const unsigned short LayerOffset
int stripTECLayersWithoutMeasurement() const
int numberOfValidMuonCSCHits() const
int trackerLayersTotallyOffOrBad() const
int stripTECLayersWithMeasurement() const
int stripTOBLayersWithoutMeasurement() const
int pixelEndcapLayersTotallyOffOrBad() const
uint32_t getRPCregion(uint32_t pattern) const
RPC region: 0 = barrel, 1 = endcap. Only valid for muon RPC patterns, of course.
int numberOfBadMuonHits() const
int numberOfValidPixelBarrelHits() const
void printHitPattern(int position, std::ostream &stream) const
bool hasValidHitInFirstPixelBarrel() const
DetId geographicalId() const
int numberOfLostStripTECHits() const
int stripTIBLayersTotallyOffOrBad() const
static const unsigned short LayerMask
Detector det() const
get the detector field from this detid
uint32_t getHitPattern(int position) const
int pixelLayersTotallyOffOrBad() const
int pixelLayersNull() const
uint32_t getMuonStation(uint32_t pattern) const
Muon station (1-4). Only valid for muon patterns, of course.
bool stripTIDHitFilter(uint32_t pattern) const
bool muonHitFilter(uint32_t pattern) const
bool stripTECHitFilter(uint32_t pattern) const
int numberOfBadMuonCSCHits() const
unsigned int wheel() const
wheel id
int pixelEndcapLayersNull() const
int innermostMuonStationWithValidHits() const
void setHitPattern(int position, uint32_t pattern)
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.