File indexing completed on 2024-04-06 12:33:44
0001 #ifndef TrackerHitProducer_h
0002 #define TrackerHitProducer_h
0003
0004
0005 #include "FWCore/Framework/interface/one/EDProducer.h"
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008
0009 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0010 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0011 #include "SimDataFormats/Vertex/interface/SimVertexContainer.h"
0012
0013 #include <string>
0014 #include <vector>
0015
0016 namespace edm {
0017 class HepMCProduct;
0018 }
0019 class PTrackerSimHit;
0020
0021 class TrackerHitProducer : public edm::one::EDProducer<> {
0022 public:
0023 typedef std::vector<float> FloatVector;
0024 typedef std::vector<int> IntegerVector;
0025
0026 explicit TrackerHitProducer(const edm::ParameterSet &);
0027 ~TrackerHitProducer() override;
0028 void beginJob() override;
0029 void endJob() override;
0030 void produce(edm::Event &, const edm::EventSetup &) override;
0031
0032 private:
0033
0034 void fillG4MC(edm::Event &);
0035 void storeG4MC(PTrackerSimHit &);
0036 void fillTrk(edm::Event &, const edm::EventSetup &);
0037 void storeTrk(PTrackerSimHit &);
0038
0039 void clear();
0040
0041 private:
0042
0043 bool getAllProvenances;
0044 bool printProvenanceInfo;
0045 int verbosity;
0046
0047
0048 unsigned int count;
0049
0050 int nRawGenPart;
0051
0052 edm::ParameterSet config_;
0053
0054 edm::EDGetTokenT<edm::HepMCProduct> edmHepMCProductToken_;
0055 edm::EDGetTokenT<edm::SimVertexContainer> edmSimVertexContainerToken_;
0056 edm::EDGetTokenT<edm::SimTrackContainer> edmSimTrackContainerToken_;
0057 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_pxlBrlLow_Token_, edmPSimHitContainer_pxlBrlHigh_Token_;
0058 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_pxlFwdLow_Token_, edmPSimHitContainer_pxlFwdHigh_Token_;
0059 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTIBLow_Token_, edmPSimHitContainer_siTIBHigh_Token_;
0060 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTOBLow_Token_, edmPSimHitContainer_siTOBHigh_Token_;
0061 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTIDLow_Token_, edmPSimHitContainer_siTIDHigh_Token_;
0062 edm::EDGetTokenT<edm::PSimHitContainer> edmPSimHitContainer_siTECLow_Token_, edmPSimHitContainer_siTECHigh_Token_;
0063
0064
0065 FloatVector G4VtxX;
0066 FloatVector G4VtxY;
0067 FloatVector G4VtxZ;
0068 FloatVector G4TrkPt;
0069 FloatVector G4TrkE;
0070 FloatVector G4TrkEta;
0071 FloatVector G4TrkPhi;
0072
0073
0074
0075
0076 IntegerVector HitsSysID;
0077 FloatVector HitsDuID;
0078 FloatVector HitsTkID;
0079 FloatVector HitsProT;
0080 FloatVector HitsParT;
0081 FloatVector HitsP;
0082 FloatVector HitsLpX;
0083 FloatVector HitsLpY;
0084 FloatVector HitsLpZ;
0085 FloatVector HitsLdX;
0086 FloatVector HitsLdY;
0087 FloatVector HitsLdZ;
0088 FloatVector HitsLdTheta;
0089 FloatVector HitsLdPhi;
0090 FloatVector HitsExPx;
0091 FloatVector HitsExPy;
0092 FloatVector HitsExPz;
0093 FloatVector HitsEnPx;
0094 FloatVector HitsEnPy;
0095 FloatVector HitsEnPz;
0096 FloatVector HitsEloss;
0097 FloatVector HitsToF;
0098
0099 std::string fName;
0100 std::string label;
0101
0102 };
0103
0104 #endif