File indexing completed on 2024-04-06 12:32:19
0001 #ifndef GlobalDigisProducer_h
0002 #define GlobalDigisProducer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "DataFormats/Common/interface/Handle.h"
0015 #include "FWCore/Framework/interface/one/EDProducer.h"
0016 #include "FWCore/Framework/interface/ESHandle.h"
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/EventSetup.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020
0021 #include "DataFormats/Provenance/interface/Provenance.h"
0022 #include "FWCore/Framework/interface/MakerMacros.h"
0023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025
0026
0027 #include "DQMServices/Core/interface/DQMStore.h"
0028 #include "FWCore/ServiceRegistry/interface/Service.h"
0029
0030
0031 #include "CalibCalorimetry/EcalTrivialCondModules/interface/EcalTrivialConditionRetriever.h"
0032 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0033 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0034 #include "DataFormats/EcalDetId/interface/ESDetId.h"
0035 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
0036 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
0037 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
0038 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0039
0040
0041 #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h"
0042 #include "CalibFormats/HcalObjects/interface/HcalCoderDb.h"
0043 #include "CalibFormats/HcalObjects/interface/HcalDbRecord.h"
0044 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0045 #include "DataFormats/HcalDetId/interface/HcalElectronicsId.h"
0046 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0047 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h"
0048 #include "DataFormats/HcalDigi/interface/HFDataFrame.h"
0049 #include "DataFormats/HcalDigi/interface/HODataFrame.h"
0050 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0051 #include "DataFormats/HcalDigi/interface/HcalQIESample.h"
0052
0053
0054
0055
0056 #include "CalibFormats/HcalObjects/interface/HcalDbService.h"
0057
0058
0059 #include "DataFormats/Common/interface/DetSetVector.h"
0060 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
0061 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
0062
0063
0064 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0065 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0066
0067
0068 #include "DataFormats/DTDigi/interface/DTDigi.h"
0069 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0070 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
0071 #include "DataFormats/MuonDetId/interface/DTWireId.h"
0072
0073
0074 #include "DataFormats/CSCDigi/interface/CSCStripDigi.h"
0075 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
0076
0077
0078 #include "DataFormats/CSCDigi/interface/CSCWireDigi.h"
0079 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
0080
0081
0082 #include "SimDataFormats/CaloHit/interface/PCaloHit.h"
0083 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
0084 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h"
0085 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h"
0086 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h"
0087
0088
0089
0090
0091
0092 #include <cstdlib>
0093 #include <map>
0094 #include <memory>
0095 #include <string>
0096 #include <vector>
0097
0098 #include "TString.h"
0099
0100 class PGlobalDigi;
0101 class TrackerTopology;
0102 class TrackerTopologyRcd;
0103 class GlobalDigisProducer : public edm::one::EDProducer<> {
0104 public:
0105 typedef std::vector<float> FloatVector;
0106 typedef std::vector<double> DoubleVector;
0107 typedef std::vector<int> IntVector;
0108 typedef std::map<uint32_t, float, std::less<uint32_t>> MapType;
0109
0110 explicit GlobalDigisProducer(const edm::ParameterSet &);
0111 ~GlobalDigisProducer() override;
0112 void beginJob(void) override;
0113 void endJob() override;
0114 void produce(edm::Event &, const edm::EventSetup &) override;
0115
0116 private:
0117
0118 void fillECal(edm::Event &, const edm::EventSetup &);
0119 void storeECal(PGlobalDigi &);
0120 void fillHCal(edm::Event &, const edm::EventSetup &);
0121 void storeHCal(PGlobalDigi &);
0122 void fillTrk(edm::Event &, const edm::EventSetup &);
0123 void storeTrk(PGlobalDigi &);
0124 void fillMuon(edm::Event &, const edm::EventSetup &);
0125 void storeMuon(PGlobalDigi &);
0126
0127 void clear();
0128
0129 private:
0130
0131 std::string fName;
0132 int verbosity;
0133 int frequency;
0134 std::string label;
0135 bool getAllProvenances;
0136 bool printProvenanceInfo;
0137
0138
0139
0140
0141 IntVector EBCalmaxPos;
0142 DoubleVector EBCalAEE;
0143 FloatVector EBCalSHE;
0144
0145 IntVector EECalmaxPos;
0146 DoubleVector EECalAEE;
0147 FloatVector EECalSHE;
0148
0149 FloatVector ESCalADC0, ESCalADC1, ESCalADC2;
0150 FloatVector ESCalSHE;
0151
0152 edm::InputTag ECalEBSrc_;
0153 edm::InputTag ECalEESrc_;
0154 edm::InputTag ECalESSrc_;
0155
0156 std::map<int, double, std::less<int>> ECalgainConv_;
0157 double ECalbarrelADCtoGeV_;
0158 double ECalendcapADCtoGeV_;
0159
0160
0161
0162 FloatVector HBCalAEE;
0163 FloatVector HBCalSHE;
0164
0165 FloatVector HECalAEE;
0166 FloatVector HECalSHE;
0167
0168 FloatVector HOCalAEE;
0169 FloatVector HOCalSHE;
0170
0171 FloatVector HFCalAEE;
0172 FloatVector HFCalSHE;
0173
0174 edm::InputTag HCalSrc_;
0175 edm::InputTag HCalDigi_;
0176
0177 edm::ESGetToken<EcalADCToGeVConstant, EcalADCToGeVConstantRcd> ecalADCtoGevToken_;
0178 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
0179 edm::ESGetToken<HcalDbService, HcalDbRecord> hcaldbToken_;
0180
0181
0182
0183 FloatVector TIBL1ADC, TIBL2ADC, TIBL3ADC, TIBL4ADC;
0184 IntVector TIBL1Strip, TIBL2Strip, TIBL3Strip, TIBL4Strip;
0185
0186 FloatVector TOBL1ADC, TOBL2ADC, TOBL3ADC, TOBL4ADC;
0187 IntVector TOBL1Strip, TOBL2Strip, TOBL3Strip, TOBL4Strip;
0188
0189 FloatVector TIDW1ADC, TIDW2ADC, TIDW3ADC;
0190 IntVector TIDW1Strip, TIDW2Strip, TIDW3Strip;
0191
0192 FloatVector TECW1ADC, TECW2ADC, TECW3ADC, TECW4ADC, TECW5ADC, TECW6ADC, TECW7ADC, TECW8ADC;
0193 IntVector TECW1Strip, TECW2Strip, TECW3Strip, TECW4Strip, TECW5Strip, TECW6Strip, TECW7Strip, TECW8Strip;
0194
0195 edm::InputTag SiStripSrc_;
0196
0197
0198
0199 FloatVector BRL1ADC, BRL2ADC, BRL3ADC;
0200 IntVector BRL1Row, BRL2Row, BRL3Row;
0201 IntVector BRL1Col, BRL2Col, BRL3Col;
0202
0203 FloatVector FWD1pADC, FWD1nADC, FWD2pADC, FWD2nADC;
0204 IntVector FWD1pRow, FWD1nRow, FWD2pRow, FWD2nRow;
0205 IntVector FWD1pCol, FWD1nCol, FWD2pCol, FWD2nCol;
0206
0207 edm::InputTag SiPxlSrc_;
0208
0209
0210
0211
0212 IntVector MB1SLayer, MB2SLayer, MB3SLayer, MB4SLayer;
0213 FloatVector MB1Time, MB2Time, MB3Time, MB4Time;
0214 IntVector MB1Layer, MB2Layer, MB3Layer, MB4Layer;
0215
0216 edm::InputTag MuDTSrc_;
0217
0218
0219
0220 float theCSCStripPedestalSum;
0221 int theCSCStripPedestalCount;
0222
0223 FloatVector CSCStripADC;
0224
0225 edm::InputTag MuCSCStripSrc_;
0226
0227
0228
0229 FloatVector CSCWireTime;
0230
0231 edm::InputTag MuCSCWireSrc_;
0232
0233
0234 unsigned int count;
0235
0236
0237 edm::EDGetTokenT<EBDigiCollection> ECalEBSrc_Token_;
0238 edm::EDGetTokenT<EEDigiCollection> ECalEESrc_Token_;
0239 edm::EDGetTokenT<ESDigiCollection> ECalESSrc_Token_;
0240 edm::EDGetTokenT<edm::PCaloHitContainer> HCalSrc_Token_;
0241 edm::EDGetTokenT<edm::SortedCollection<HBHEDataFrame>> HBHEDigi_Token_;
0242 edm::EDGetTokenT<edm::SortedCollection<HODataFrame>> HODigi_Token_;
0243 edm::EDGetTokenT<edm::SortedCollection<HFDataFrame>> HFDigi_Token_;
0244 edm::EDGetTokenT<edm::DetSetVector<SiStripDigi>> SiStripSrc_Token_;
0245 edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> SiPxlSrc_Token_;
0246 edm::EDGetTokenT<DTDigiCollection> MuDTSrc_Token_;
0247 edm::EDGetTokenT<CSCStripDigiCollection> MuCSCStripSrc_Token_;
0248 edm::EDGetTokenT<CSCWireDigiCollection> MuCSCWireSrc_Token_;
0249 edm::EDGetTokenT<CrossingFrame<PCaloHit>> EBHits_Token_;
0250 edm::EDGetTokenT<CrossingFrame<PCaloHit>> EEHits_Token_;
0251 edm::EDGetTokenT<CrossingFrame<PCaloHit>> ESHits_Token_;
0252
0253 };
0254
0255 #endif
0256
0257 #ifndef GlobalHitMap
0258 #define GlobalHitMap
0259
0260
0261 static const int dTrk = 1;
0262 static const int sdPxlBrl = 1;
0263 static const int sdPxlFwd = 2;
0264 static const int sdSiTIB = 3;
0265 static const int sdSiTID = 4;
0266 static const int sdSiTOB = 5;
0267 static const int sdSiTEC = 6;
0268
0269 static const int dMuon = 2;
0270 static const int sdMuonDT = 1;
0271 static const int sdMuonCSC = 2;
0272 static const int sdMuonRPC = 3;
0273 static const int sdMuonRPCRgnBrl = 0;
0274 static const int sdMuonRPCRgnFwdp = 1;
0275 static const int sdMuonRPCRgnFwdn = -1;
0276
0277 static const int dEcal = 3;
0278 static const int sdEcalBrl = 1;
0279 static const int sdEcalFwd = 2;
0280 static const int sdEcalPS = 3;
0281 static const int sdEcalTT = 4;
0282 static const int sdEcalLPnD = 5;
0283
0284 static const int dHcal = 4;
0285 static const int sdHcalEmpty = 0;
0286 static const int sdHcalBrl = 1;
0287 static const int sdHcalEC = 2;
0288 static const int sdHcalOut = 3;
0289 static const int sdHcalFwd = 4;
0290 static const int sdHcalTT = 5;
0291 static const int sdHcalCalib = 6;
0292 static const int sdHcalCompst = 7;
0293
0294 #endif