File indexing completed on 2023-03-17 11:19:34
0001 #ifndef RecoLocalTracker_SiPixelClusterizer_SiPixelClusterProducer_h
0002 #define RecoLocalTracker_SiPixelClusterizer_SiPixelClusterProducer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 #include "PixelClusterizerBase.h"
0032
0033
0034
0035 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0036 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0037
0038 #include "DataFormats/Common/interface/DetSetVector.h"
0039 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0040 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0041 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
0042 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0043
0044 #include "FWCore/Framework/interface/stream/EDProducer.h"
0045 #include "FWCore/Framework/interface/Event.h"
0046 #include "FWCore/Framework/interface/EventSetup.h"
0047 #include "DataFormats/Common/interface/Handle.h"
0048 #include "FWCore/Framework/interface/ESHandle.h"
0049
0050 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0051 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0052 #include "FWCore/Utilities/interface/InputTag.h"
0053
0054 class dso_hidden SiPixelClusterProducer final : public edm::stream::EDProducer<> {
0055 public:
0056
0057 explicit SiPixelClusterProducer(const edm::ParameterSet& conf);
0058 ~SiPixelClusterProducer() override;
0059
0060 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0061
0062 void setupClusterizer(const edm::ParameterSet& conf);
0063
0064
0065 void produce(edm::Event& e, const edm::EventSetup& c) override;
0066
0067
0068 template <typename T>
0069 void run(const T& input, const edm::ESHandle<TrackerGeometry>& geom, edmNew::DetSetVector<SiPixelCluster>& output);
0070
0071 private:
0072 edm::EDGetTokenT<SiPixelClusterCollectionNew> tPixelClusters;
0073 edm::EDGetTokenT<edm::DetSetVector<PixelDigi>> tPixelDigi;
0074 edm::EDPutTokenT<SiPixelClusterCollectionNew> tPutPixelClusters;
0075 edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> trackerTopoToken_;
0076 edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> trackerGeomToken_;
0077
0078 std::unique_ptr<SiPixelGainCalibrationServiceBase> theSiPixelGainCalibration_;
0079 const std::string clusterMode_;
0080 std::unique_ptr<PixelClusterizerBase> clusterizer_;
0081 const TrackerTopology* tTopo_;
0082
0083
0084 const int32_t maxTotalClusters_;
0085 };
0086
0087 #endif