File indexing completed on 2024-04-06 12:30:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include <memory>
0011
0012
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0015 #include "FWCore/Framework/interface/ConsumesCollector.h"
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/MakerMacros.h"
0020 #include "TH1.h"
0021
0022 #include "SimDataFormats/CaloAnalysis/interface/CaloParticleFwd.h"
0023 #include "SimDataFormats/CaloAnalysis/interface/CaloParticle.h"
0024 #include "SimDataFormats/CaloAnalysis/interface/SimTauCPLink.h"
0025
0026 #include "FWCore/ServiceRegistry/interface/Service.h"
0027 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0028
0029 class SimTauAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
0030 public:
0031 explicit SimTauAnalyzer(const edm::ParameterSet&);
0032 ~SimTauAnalyzer() override = default;
0033
0034 private:
0035 void analyze(const edm::Event&, const edm::EventSetup&) override;
0036
0037 const edm::EDGetTokenT<std::vector<SimTauCPLink>> simTau_token_;
0038 TH1D* DM_histo;
0039 };
0040
0041 SimTauAnalyzer::SimTauAnalyzer(const edm::ParameterSet& iConfig)
0042 : simTau_token_(consumes<std::vector<SimTauCPLink>>(iConfig.getParameter<edm::InputTag>("simTau"))) {
0043 usesResource(TFileService::kSharedResource);
0044 edm::Service<TFileService> fs;
0045 DM_histo = fs->make<TH1D>("DM_histo", "DM_histo", 20, -1, 19);
0046 }
0047
0048
0049 void SimTauAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0050 edm::Handle<std::vector<SimTauCPLink>> simTau_h;
0051 iEvent.getByToken(simTau_token_, simTau_h);
0052
0053 const auto& simTaus = *simTau_h;
0054
0055 for (auto const& simTau : simTaus) {
0056 #ifdef EDM_ML_DEBUG
0057 simTau.dumpFullDecay();
0058 simTau.dump();
0059 #endif
0060 DM_histo->Fill(simTau.decayMode);
0061 }
0062 }
0063
0064
0065 DEFINE_FWK_MODULE(SimTauAnalyzer);