File indexing completed on 2023-09-26 01:40:32
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0025
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030 #include "FWCore/Utilities/interface/InputTag.h"
0031 #include "DataFormats/TrackReco/interface/Track.h"
0032 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0033 @example_histo#include "FWCore/ServiceRegistry/interface/Service.h"
0034 @example_histo#include "CommonTools/UtilAlgos/interface/TFileService.h"
0035 @example_histo#include "TH1.h"
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 using reco::TrackCollection;
0046
0047 class __class__ : public edm::one::EDAnalyzer<edm::one::SharedResources> {
0048 public:
0049 explicit __class__(const edm::ParameterSet&);
0050 ~__class__() override;
0051
0052 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0053
0054 private:
0055 void beginJob() override;
0056 void analyze(const edm::Event&, const edm::EventSetup&) override;
0057 void endJob() override;
0058
0059
0060 edm::EDGetTokenT<TrackCollection> tracksToken_;
0061 #ifdef THIS_IS_AN_EVENTSETUP_EXAMPLE
0062 edm::ESGetToken<SetupData, SetupRecord> setupToken_;
0063 #endif
0064 @example_histo TH1I* histo;
0065 };
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078 __class__::__class__(const edm::ParameterSet& iConfig)
0079 : tracksToken_(consumes<TrackCollection>(iConfig.getUntrackedParameter<edm::InputTag>("tracks"))) {
0080 #ifdef THIS_IS_AN_EVENTSETUP_EXAMPLE
0081 setupDataToken_ = esConsumes<SetupData, SetupRecord>();
0082 #endif
0083
0084 @example_histo usesResource("TFileService");
0085 @example_histo edm::Service<TFileService> fs;
0086 @example_histo histo = fs->make<TH1I>("charge", "Charges", 2, -1, 1);
0087 }
0088
0089 __class__::~__class__() {
0090
0091
0092
0093
0094 }
0095
0096
0097
0098
0099
0100
0101 void __class__::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0102 using namespace edm;
0103
0104 for (const auto& track : iEvent.get(tracksToken_)) {
0105
0106
0107 @example_histo histo->Fill(track.charge());
0108 }
0109
0110 #ifdef THIS_IS_AN_EVENTSETUP_EXAMPLE
0111
0112 auto setup = iSetup.getData(setupToken_);
0113
0114 auto pSetup = iSetup.getHandle(setupToken_);
0115 #endif
0116 }
0117
0118
0119 void __class__::beginJob() {
0120
0121 }
0122
0123
0124 void __class__::endJob() {
0125
0126 }
0127
0128
0129 void __class__::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0130
0131
0132 edm::ParameterSetDescription desc;
0133 desc.setUnknown();
0134 descriptions.addDefault(desc);
0135
0136
0137
0138
0139
0140
0141 }
0142
0143
0144 DEFINE_FWK_MODULE(__class__);