File indexing completed on 2023-03-17 11:11:36
0001 #ifndef DE_TRAIT_H
0002 #define DE_TRAIT_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0013 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0014 #include "DataFormats/L1CaloTrigger/interface/L1CaloCollections.h"
0015 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h"
0016 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h"
0017 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
0018 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTTrackContainer.h"
0019 #include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
0020 #include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
0021 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0022 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
0023 #include "DataFormats/L1CSCTrackFinder/interface/L1CSCStatusDigiCollection.h"
0024 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTTrackCand.h"
0025 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0026 #include "DataFormats/LTCDigi/interface/LTCDigi.h"
0027 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h"
0028 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0029 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0030 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
0031 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapRecord.h"
0032
0033
0034 #include "DataFormats/L1Trigger/interface/L1DataEmulRecord.h"
0035
0036 namespace dedefs {
0037
0038 const int DEnsys = 12;
0039
0040 enum SysList { ETP, HTP, RCT, GCT, DTP, DTF, CTP, CTF, RPC, LTC, GMT, GLT };
0041
0042 const std::string SystLabel[DEnsys] = {
0043 "ETP", "HTP", "RCT", "GCT", "DTP", "DTF", "CTP", "CTF", "RPC", "LTC", "GMT", "GLT"};
0044
0045 const std::string SystLabelExt[DEnsys] = {
0046 "ECAL", "HCAL", "RCT", "GCT", "DTTPG", "DTTF", "CSCTPG", "CSCTF", "RPC", "LTC", "GMT", "GT"};
0047
0048 enum ColList {
0049 ECALtp,
0050 HCALtp,
0051 RCTem,
0052 RCTrgn,
0053 GCTem,
0054 GCTjet,
0055 GCTisolaem,
0056 GCTnoisoem,
0057 GCTcenjets,
0058 GCTforjets,
0059 GCTtaujets,
0060 GCTethad,
0061 GCTetmiss,
0062 GCTettot,
0063 GCThtmiss,
0064 GCThfring,
0065 GCThfbit,
0066 GCTisotaujets,
0067 GCTjetcnt,
0068 DTtpPh,
0069 DTtpTh,
0070 DTtf,
0071 DTtftrk,
0072 CSCtpa,
0073 CSCtpc,
0074 CSCtpl,
0075 CSCsta,
0076 CSCtf,
0077 CSCtftrk,
0078 CSCtftrc,
0079 CSCtfsta,
0080 MUrtf,
0081 RPCcen,
0082 RPCfor,
0083 LTCi,
0084 GMTmain,
0085 GMTcnd,
0086 GMTrdt,
0087 GTdword
0088 };
0089
0090 }
0091
0092 typedef std::vector<L1MuDTChambPhDigi> L1MuDTChambPhDigiCollection;
0093 typedef std::vector<L1MuDTChambThDigi> L1MuDTChambThDigiCollection;
0094 typedef std::vector<L1MuRegionalCand> L1MuRegionalCandCollection;
0095 typedef std::vector<CSCALCTDigi> CSCALCTDigiCollection_;
0096 typedef std::vector<CSCCLCTDigi> CSCCLCTDigiCollection_;
0097 typedef std::vector<CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection_;
0098 typedef std::vector<L1CSCSPStatusDigi> L1CSCSPStatusDigiCollection_;
0099 typedef std::vector<L1MuGMTCand> L1MuGMTCandCollection;
0100 typedef std::vector<L1MuGMTReadoutRecord> L1MuGMTReadoutRecordCollection;
0101 typedef std::vector<L1DataEmulDigi> L1DEDigiCollection;
0102
0103 template <typename T>
0104 struct DEtrait {};
0105
0106 template <>
0107 struct DEtrait<EcalTrigPrimDigiCollection> {
0108 typedef EcalTrigPrimDigiCollection coll_type;
0109 typedef EcalTriggerPrimitiveDigi cand_type;
0110 static inline int de_type() { return dedefs::ECALtp; }
0111 };
0112
0113 template <>
0114 struct DEtrait<HcalTrigPrimDigiCollection> {
0115 typedef HcalTrigPrimDigiCollection coll_type;
0116 typedef HcalTriggerPrimitiveDigi cand_type;
0117 static inline int de_type() { return dedefs::HCALtp; }
0118 };
0119
0120 template <>
0121 struct DEtrait<L1CaloEmCollection> {
0122 typedef L1CaloEmCollection coll_type;
0123 typedef L1CaloEmCand cand_type;
0124 static inline int de_type() { return dedefs::RCTem; }
0125 };
0126
0127 template <>
0128 struct DEtrait<L1CaloRegionCollection> {
0129 typedef L1CaloRegionCollection coll_type;
0130 typedef L1CaloRegion cand_type;
0131 static inline int de_type() { return dedefs::RCTrgn; }
0132 };
0133
0134 template <>
0135 struct DEtrait<L1GctEmCandCollection> {
0136 typedef L1GctEmCandCollection coll_type;
0137 typedef L1GctEmCand cand_type;
0138 static inline int de_type() { return dedefs::GCTem; }
0139 };
0140
0141 template <>
0142 struct DEtrait<L1GctJetCandCollection> {
0143 typedef L1GctJetCandCollection coll_type;
0144 typedef L1GctJetCand cand_type;
0145 static inline int de_type() { return dedefs::GCTjet; }
0146 };
0147
0148 template <>
0149 struct DEtrait<L1GctEtHadCollection> {
0150 typedef L1GctEtHadCollection coll_type;
0151 typedef L1GctEtHad cand_type;
0152 static inline int de_type() { return dedefs::GCTethad; }
0153 };
0154 template <>
0155 struct DEtrait<L1GctEtMissCollection> {
0156 typedef L1GctEtMissCollection coll_type;
0157 typedef L1GctEtMiss cand_type;
0158 static inline int de_type() { return dedefs::GCTetmiss; }
0159 };
0160 template <>
0161 struct DEtrait<L1GctEtTotalCollection> {
0162 typedef L1GctEtTotalCollection coll_type;
0163 typedef L1GctEtTotal cand_type;
0164 static inline int de_type() { return dedefs::GCTettot; }
0165 };
0166 template <>
0167 struct DEtrait<L1GctHtMissCollection> {
0168 typedef L1GctHtMissCollection coll_type;
0169 typedef L1GctHtMiss cand_type;
0170 static inline int de_type() { return dedefs::GCThtmiss; }
0171 };
0172 template <>
0173 struct DEtrait<L1GctHFRingEtSumsCollection> {
0174 typedef L1GctHFRingEtSumsCollection coll_type;
0175 typedef L1GctHFRingEtSums cand_type;
0176 static inline int de_type() { return dedefs::GCThfring; }
0177 };
0178 template <>
0179 struct DEtrait<L1GctHFBitCountsCollection> {
0180 typedef L1GctHFBitCountsCollection coll_type;
0181 typedef L1GctHFBitCounts cand_type;
0182 static inline int de_type() { return dedefs::GCThfbit; }
0183 };
0184 template <>
0185 struct DEtrait<L1GctJetCountsCollection> {
0186 typedef L1GctJetCountsCollection coll_type;
0187 typedef L1GctJetCounts cand_type;
0188 static inline int de_type() { return dedefs::GCTjetcnt; }
0189 };
0190
0191 template <>
0192 struct DEtrait<L1MuDTChambPhDigiCollection> {
0193 typedef L1MuDTChambPhDigiCollection coll_type;
0194 typedef L1MuDTChambPhDigi cand_type;
0195 static inline int de_type() { return dedefs::DTtpPh; }
0196 };
0197 template <>
0198 struct DEtrait<L1MuDTChambThDigiCollection> {
0199 typedef L1MuDTChambThDigiCollection coll_type;
0200 typedef L1MuDTChambThDigi cand_type;
0201 static inline int de_type() { return dedefs::DTtpTh; }
0202 };
0203
0204 template <>
0205 struct DEtrait<L1MuRegionalCandCollection> {
0206 typedef L1MuRegionalCandCollection coll_type;
0207 typedef L1MuRegionalCand cand_type;
0208 static inline int de_type() { return dedefs::MUrtf; }
0209 };
0210
0211 template <>
0212 struct DEtrait<CSCALCTDigiCollection_> {
0213 typedef CSCALCTDigiCollection_ coll_type;
0214 typedef CSCALCTDigi cand_type;
0215 static inline int de_type() { return dedefs::CSCtpa; }
0216 };
0217 template <>
0218 struct DEtrait<CSCCLCTDigiCollection_> {
0219 typedef CSCCLCTDigiCollection_ coll_type;
0220 typedef CSCCLCTDigi cand_type;
0221 static inline int de_type() { return dedefs::CSCtpc; }
0222 };
0223
0224 template <>
0225 struct DEtrait<CSCCorrelatedLCTDigiCollection_> {
0226 typedef CSCCorrelatedLCTDigiCollection_ coll_type;
0227 typedef CSCCorrelatedLCTDigi cand_type;
0228 static inline int de_type() { return dedefs::CSCtpl; }
0229 };
0230
0231 template <>
0232 struct DEtrait<L1CSCSPStatusDigiCollection_> {
0233 typedef L1CSCSPStatusDigiCollection_ coll_type;
0234 typedef L1CSCSPStatusDigi cand_type;
0235 static inline int de_type() { return dedefs::CSCsta; }
0236 };
0237
0238 template <>
0239 struct DEtrait<LTCDigiCollection> {
0240 typedef LTCDigiCollection coll_type;
0241 typedef LTCDigi cand_type;
0242 static inline int de_type() { return dedefs::LTCi; }
0243 };
0244
0245 template <>
0246 struct DEtrait<L1MuGMTCandCollection> {
0247 typedef L1MuGMTCandCollection coll_type;
0248 typedef L1MuGMTCand cand_type;
0249 static inline int de_type() { return dedefs::GMTcnd; }
0250 };
0251
0252 template <>
0253 struct DEtrait<L1MuGMTReadoutRecordCollection> {
0254 typedef L1MuGMTReadoutRecordCollection coll_type;
0255 typedef L1MuGMTReadoutRecord cand_type;
0256 static inline int de_type() { return dedefs::GMTrdt; }
0257 };
0258
0259 template <>
0260 struct DEtrait<DecisionWord> {
0261 typedef DecisionWord coll_type;
0262 typedef bool cand_type;
0263 static inline int de_type() { return dedefs::GTdword; }
0264 };
0265
0266 #endif