Skip to content

Commit

Permalink
Move trigger detids
Browse files Browse the repository at this point in the history
  • Loading branch information
jbsauvan committed Jul 23, 2021
1 parent 3309eb0 commit b308cbb
Show file tree
Hide file tree
Showing 11 changed files with 170 additions and 170 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef DataFormats_ForwardDetId_HGCalTriggerBackendCommon_H
#define DataFormats_ForwardDetId_HGCalTriggerBackendCommon_H 1

enum HGCalTriggerClassIdentifier { ModuleDetId, BackendDetId };

#endif
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#ifndef L1Trigger_L1THGCal_HGCalBackendDetId_H
#define L1Trigger_L1THGCal_HGCalBackendDetId_H 1
#ifndef DataFormats_ForwardDetId_HGCalTriggerBackendDetId_H
#define DataFormats_ForwardDetId_HGCalTriggerBackendDetId_H 1

#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/ForwardDetId/interface/HGCalTriggerBackendCommon.h"
#include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h"
#include "L1Trigger/L1THGCal/interface/HGCalBackendCommon.h"

/* \brief description of the bit assigment
[0:10] ID of the lpGBT or Stage 1 FPGA in sector 0
Expand All @@ -14,26 +14,26 @@
3 Stage 2 FPGA)
[16:16] z-side (0 for +z; 1 for -z)
[19:23] reserved for future use
[24:24] Class identifier (0 for HGCalModuleDetID, 1 for HGCalBackendDetID)
[24:24] Class identifier (0 for HGCalTriggerModuleDetID, 1 for HGCalTriggerBackendDetID)
[25:27] Subdetector Type (HGCTrigger)
[28:31] Detector type (Forward)
*/

class HGCalBackendDetId : public DetId {
class HGCalTriggerBackendDetId : public DetId {
public:
/** Create a null backend id*/
HGCalBackendDetId();
HGCalTriggerBackendDetId();
/** Create backend id from raw id (0=invalid id) */
HGCalBackendDetId(uint32_t rawid);
HGCalTriggerBackendDetId(uint32_t rawid);
/** Constructor from zplus, type, sector, label */
HGCalBackendDetId(int zp, int type, int sector, int label);
HGCalTriggerBackendDetId(int zp, int type, int sector, int label);
/** Constructor from a generic det id */
HGCalBackendDetId(const DetId& id);
HGCalTriggerBackendDetId(const DetId& id);
/** Assignment from a generic det id */
HGCalBackendDetId& operator=(const DetId& id);
HGCalTriggerBackendDetId& operator=(const DetId& id);

/// get the class
int classId() const { return (id_ >> kHGCalClassIdentifierOffset) & kHGCalClassIdentifierMask; }
int classId() const { return (id_ >> kHGCalTriggerClassIdentifierOffset) & kHGCalTriggerClassIdentifierMask; }

/// get the type
int type() const { return (id_ >> kHGCalTypeOffset) & kHGCalTypeMask; }
Expand All @@ -52,10 +52,10 @@ class HGCalBackendDetId : public DetId {
bool isStage1Link() const { return (type() == BackendType::Stage1Link); }
bool isStage2FPGA() const { return (type() == BackendType::Stage2FPGA); }
bool isForward() const { return true; }
bool isHGCalModuleDetId() const { return (classId() == HGCalClassIdentifier::ModuleDetId); }
bool isHGCalBackendDetId() const { return (classId() == HGCalClassIdentifier::BackendDetId); }
bool isHGCalModuleDetId() const { return (classId() == HGCalTriggerClassIdentifier::ModuleDetId); }
bool isHGCalBackendDetId() const { return (classId() == HGCalTriggerClassIdentifier::BackendDetId); }

static const HGCalBackendDetId Undefined;
static const HGCalTriggerBackendDetId Undefined;

static const int kHGCalLabelOffset = 0;
static const int kHGCalLabelMask = 0x7FF;
Expand All @@ -65,12 +65,12 @@ class HGCalBackendDetId : public DetId {
static const int kHGCalTypeMask = 0x7;
static const int kHGCalZsideOffset = 16;
static const int kHGCalZsideMask = 0x1;
static const int kHGCalClassIdentifierOffset = 24;
static const int kHGCalClassIdentifierMask = 0x1;
static const int kHGCalTriggerClassIdentifierOffset = 24;
static const int kHGCalTriggerClassIdentifierMask = 0x1;

enum BackendType { LpGBT, Stage1FPGA, Stage1Link, Stage2FPGA };
};

std::ostream& operator<<(std::ostream&, const HGCalBackendDetId& id);
std::ostream& operator<<(std::ostream&, const HGCalTriggerBackendDetId& id);

#endif
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#ifndef L1Trigger_L1THGCal_HGCalModuleDetId_H
#define L1Trigger_L1THGCal_HGCalModuleDetId_H 1
#ifndef DataFormats_ForwardDetId_HGCalTriggerModuleDetId_H
#define DataFormats_ForwardDetId_HGCalTriggerModuleDetId_H 1

#include "L1Trigger/L1THGCal/interface/HGCalBackendCommon.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/ForwardDetId/interface/HGCalTriggerBackendCommon.h"
#include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h"

/* \brief description of the bit assigment
Expand All @@ -23,29 +23,29 @@
[21:21] z-side (0 for +z; 1 for -z)
[22:23] Trigger Subdetector Type(HGCEE/HGCHEF/HGCHEB/HFNose)
[24:24] Class identifier (0 for HGCalModuleDetID, 1 for HGCalBackendDetID)
[24:24] Class identifier (0 for HGCalTriggerModuleDetID, 1 for HGCalTriggerBackendDetID)
[25:27] Subdetector Type (HGCTrigger)
[28:31] Detector type (Forward)
*/

class HGCalModuleDetId : public DetId {
class HGCalTriggerModuleDetId : public DetId {
public:
/** Create a null module id*/
HGCalModuleDetId();
HGCalTriggerModuleDetId();
/** Create module id from raw id (0=invalid id) */
HGCalModuleDetId(uint32_t rawid);
HGCalTriggerModuleDetId(uint32_t rawid);
/** Constructor from subdetector, zplus, type, layer, sector, module numbers */
HGCalModuleDetId(HGCalTriggerSubdetector subdet, int zp, int type, int layer, int sector, int moduleU, int moduleV);
HGCalTriggerModuleDetId(HGCalTriggerSubdetector subdet, int zp, int type, int layer, int sector, int moduleU, int moduleV);
/** Constructor from a generic det id */
HGCalModuleDetId(const DetId& id);
HGCalTriggerModuleDetId(const DetId& id);
/** Assignment from a generic det id */
HGCalModuleDetId& operator=(const DetId& id);
HGCalTriggerModuleDetId& operator=(const DetId& id);

/// get the trigger sub-detector
int triggerSubdetId() const { return (id_ >> kHGCalTriggerSubdetOffset) & kHGCalTriggerSubdetMask; }

/// get the class
int classId() const { return (id_ >> kHGCalClassIdentifierOffset) & kHGCalClassIdentifierMask; }
int classId() const { return (id_ >> kHGCalTriggerClassIdentifierOffset) & kHGCalTriggerClassIdentifierMask; }

/// get the type
int type() const { return (id_ >> kHGCalTypeOffset) & kHGCalTypeMask; }
Expand Down Expand Up @@ -78,10 +78,10 @@ class HGCalModuleDetId : public DetId {
bool isHScintillator() const { return (triggerSubdetId() == HGCalHScTrigger); }
bool isForward() const { return true; }
bool isHGCTrigger() const { return true; }
bool isHGCalModuleDetId() const { return (classId() == HGCalClassIdentifier::ModuleDetId); }
bool isHGCalBackendDetId() const { return (classId() == HGCalClassIdentifier::BackendDetId); }
bool isHGCalModuleDetId() const { return (classId() == HGCalTriggerClassIdentifier::ModuleDetId); }
bool isHGCalBackendDetId() const { return (classId() == HGCalTriggerClassIdentifier::BackendDetId); }

static const HGCalModuleDetId Undefined;
static const HGCalTriggerModuleDetId Undefined;

static const int kHGCalModuleUOffset = 0;
static const int kHGCalModuleUMask = 0xF;
Expand All @@ -97,10 +97,10 @@ class HGCalModuleDetId : public DetId {
static const int kHGCalZsideMask = 0x1;
static const int kHGCalTriggerSubdetOffset = 22;
static const int kHGCalTriggerSubdetMask = 0x3;
static const int kHGCalClassIdentifierOffset = 24;
static const int kHGCalClassIdentifierMask = 0x1;
static const int kHGCalTriggerClassIdentifierOffset = 24;
static const int kHGCalTriggerClassIdentifierMask = 0x1;
};

std::ostream& operator<<(std::ostream&, const HGCalModuleDetId& id);
std::ostream& operator<<(std::ostream&, const HGCalTriggerModuleDetId& id);

#endif
42 changes: 42 additions & 0 deletions DataFormats/ForwardDetId/src/HGCalTriggerBackendDetId.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#include "DataFormats/ForwardDetId/interface/HGCalTriggerBackendDetId.h"
#include "FWCore/Utilities/interface/Exception.h"
#include <iostream>

HGCalTriggerBackendDetId::HGCalTriggerBackendDetId() : DetId() {}

HGCalTriggerBackendDetId::HGCalTriggerBackendDetId(uint32_t rawid) : DetId(rawid) {}

HGCalTriggerBackendDetId::HGCalTriggerBackendDetId(int zp, int type, int sector, int label) : DetId(Forward, HGCTrigger) {
int classid = HGCalTriggerClassIdentifier::ModuleDetId;
int zside = (zp < 0) ? 1 : 0;
id_ |= (((label & kHGCalLabelMask) << kHGCalLabelOffset) | ((sector & kHGCalSectorMask) << kHGCalSectorOffset) |
((zside & kHGCalZsideMask) << kHGCalZsideOffset) | ((type & kHGCalTypeMask) << kHGCalTypeOffset) |
((classid & kHGCalTriggerClassIdentifierMask) << kHGCalTriggerClassIdentifierOffset));
}

HGCalTriggerBackendDetId::HGCalTriggerBackendDetId(const DetId& gen) {
if (!gen.null()) {
if (gen.det() != Forward) {
throw cms::Exception("Invalid DetId")
<< "Cannot initialize HGCalTriggerBackendDetId from " << std::hex << gen.rawId() << std::dec;
}
}
id_ = gen.rawId();
}

HGCalTriggerBackendDetId& HGCalTriggerBackendDetId::operator=(const DetId& gen) {
if (!gen.null()) {
if (gen.det() != Forward) {
throw cms::Exception("Invalid DetId")
<< "Cannot assign HGCalTriggerBackendDetId from " << std::hex << gen.rawId() << std::dec;
}
}
id_ = gen.rawId();
return (*this);
}

std::ostream& operator<<(std::ostream& s, const HGCalTriggerBackendDetId& id) {
return s << "HGCalTriggerBackendDetId::lpGBT:Stage1 FPGA:Stage2 FPGA= " << id.isLpGBT() << ":" << id.isStage1FPGA() << ":"
<< id.isStage1Link() << ":" << id.isStage2FPGA() << " z= " << id.zside() << " sector= " << id.sector()
<< " id= " << id.label();
}
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
#include "L1Trigger/L1THGCal/interface/HGCalModuleDetId.h"
#include "DataFormats/ForwardDetId/interface/HGCalTriggerModuleDetId.h"
#include "FWCore/Utilities/interface/Exception.h"
#include <iostream>

HGCalModuleDetId::HGCalModuleDetId() : DetId() {}
HGCalTriggerModuleDetId::HGCalTriggerModuleDetId() : DetId() {}

HGCalModuleDetId::HGCalModuleDetId(uint32_t rawid) : DetId(rawid) {}
HGCalTriggerModuleDetId::HGCalTriggerModuleDetId(uint32_t rawid) : DetId(rawid) {}

HGCalModuleDetId::HGCalModuleDetId(
HGCalTriggerModuleDetId::HGCalTriggerModuleDetId(
HGCalTriggerSubdetector subdet, int zp, int type, int layer, int sector, int moduleU, int moduleV)
: DetId(Forward, HGCTrigger) {
int classid = HGCalClassIdentifier::ModuleDetId;
int classid = HGCalTriggerClassIdentifier::ModuleDetId;
int zside = (zp < 0) ? 1 : 0;

id_ |=
(((moduleU & kHGCalModuleUMask) << kHGCalModuleUOffset) | ((moduleV & kHGCalModuleVMask) << kHGCalModuleVOffset) |
((sector & kHGCalSectorMask) << kHGCalSectorOffset) | ((layer & kHGCalLayerMask) << kHGCalLayerOffset) |
((zside & kHGCalZsideMask) << kHGCalZsideOffset) | ((type & kHGCalTypeMask) << kHGCalTypeOffset) |
((subdet & kHGCalTriggerSubdetMask) << kHGCalTriggerSubdetOffset) |
((classid & kHGCalClassIdentifierMask) << kHGCalClassIdentifierOffset));
((classid & kHGCalTriggerClassIdentifierMask) << kHGCalTriggerClassIdentifierOffset));
}

HGCalModuleDetId::HGCalModuleDetId(const DetId& gen) {
HGCalTriggerModuleDetId::HGCalTriggerModuleDetId(const DetId& gen) {
if (!gen.null()) {
if (gen.det() != Forward) {
throw cms::Exception("Invalid DetId")
<< "Cannot initialize HGCalModuleDetId from " << std::hex << gen.rawId() << std::dec;
<< "Cannot initialize HGCalTriggerModuleDetId from " << std::hex << gen.rawId() << std::dec;
}
}
id_ = gen.rawId();
}

HGCalModuleDetId& HGCalModuleDetId::operator=(const DetId& gen) {
HGCalTriggerModuleDetId& HGCalTriggerModuleDetId::operator=(const DetId& gen) {
if (!gen.null()) {
if (gen.det() != Forward) {
throw cms::Exception("Invalid DetId")
<< "Cannot assign HGCalModuleDetId from " << std::hex << gen.rawId() << std::dec;
<< "Cannot assign HGCalTriggerModuleDetId from " << std::hex << gen.rawId() << std::dec;
}
}
id_ = gen.rawId();
return (*this);
}

std::ostream& operator<<(std::ostream& s, const HGCalModuleDetId& id) {
return s << "HGCalModuleDetId::HFNose:EE:HSil:HScin= " << id.isHFNose() << ":" << id.isEE() << ":" << id.isHSilicon()
std::ostream& operator<<(std::ostream& s, const HGCalTriggerModuleDetId& id) {
return s << "HGCalTriggerModuleDetId::HFNose:EE:HSil:HScin= " << id.isHFNose() << ":" << id.isEE() << ":" << id.isHSilicon()
<< ":" << id.isHScintillator() << " type= " << id.type() << " z= " << id.zside() << " layer= " << id.layer()
<< " sector= " << id.sector() << " module(u,v)= (" << id.moduleU() << "," << id.moduleV() << ")";
}
6 changes: 0 additions & 6 deletions L1Trigger/L1THGCal/interface/HGCalBackendCommon.h

This file was deleted.

Loading

0 comments on commit b308cbb

Please sign in to comment.