Go to the documentation of this file.00001
00002
00003 #include "FWCore/Framework/interface/Frameworkfwd.h"
00004 #include "FWCore/Framework/interface/EDAnalyzer.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/Framework/interface/MakerMacros.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 #include "FWCore/Utilities/interface/InputTag.h"
00009
00010 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00011 #include "TBDataFormats/HcalTBObjects/interface/HcalTBTriggerData.h"
00012 #include "TBDataFormats/HcalTBObjects/interface/HcalTBTiming.h"
00013 #include "TBDataFormats/HcalTBObjects/interface/HcalTBBeamCounters.h"
00014 #include "TBDataFormats/HcalTBObjects/interface/HcalTBEventPosition.h"
00015 #include "RecoTBCalo/ZDCTBAnalysis/interface/ZdcTBAnalysis.h"
00016 #include "TFile.h"
00017 #include "TTree.h"
00018 #include "TH1.h"
00019 #include <iostream>
00020 #include <memory>
00021
00022
00023 class ZdcTBAnalyzer : public edm::EDAnalyzer {
00024
00025 public:
00026 explicit ZdcTBAnalyzer(const edm::ParameterSet&);
00027 ~ZdcTBAnalyzer();
00028 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00029 virtual void endJob();
00030
00031 private:
00032 std::string outputFileName;
00033 std::string inputFileName;
00034 bool beamDetectorsADCInfo;
00035 bool beamDetectorsTDCInfo;
00036 bool wireChambersInfo;
00037 bool triggerInfo;
00038 ZdcTBAnalysis zdcTBAnalysis;
00039
00040 edm::InputTag zdcRecHitCollectionTag;
00041 edm::InputTag hcalTBTriggerDataTag;
00042 edm::InputTag hcalTBTimingTag;
00043 edm::InputTag hcalTBBeamCountersTag;
00044 edm::InputTag hcalTBEventPositionTag;
00045 };
00046
00047 ZdcTBAnalyzer::ZdcTBAnalyzer(const edm::ParameterSet& iConfig) :
00048 zdcRecHitCollectionTag(iConfig.getParameter<edm::InputTag>("zdcRecHitCollectionTag")),
00049 hcalTBTriggerDataTag(iConfig.getParameter<edm::InputTag>("hcalTBTriggerDataTag")),
00050 hcalTBTimingTag(iConfig.getParameter<edm::InputTag>("hcalTBTimingTag")),
00051 hcalTBBeamCountersTag(iConfig.getParameter<edm::InputTag>("hcalTBBeamCountersTag")),
00052 hcalTBEventPositionTag(iConfig.getParameter<edm::InputTag>("hcalTBEventPositionTag"))
00053 {
00054 std::cout<<"**************** ZdcTBAnalizer Start**************************"<<std::endl;
00055 edm::ParameterSet para = iConfig.getParameter<edm::ParameterSet>("ZdcTBAnalyzer");
00056
00057 beamDetectorsADCInfo = para.getParameter<bool>("beamDetectorsADCInfoFlag");
00058 beamDetectorsTDCInfo = para.getParameter<bool>("beamDetectorsTDCInfoFlag");
00059 wireChambersInfo = para.getParameter<bool>("wireChambersInfoFlag");
00060 triggerInfo = para.getParameter<bool>("triggerInfoFlag");
00061 outputFileName = para.getParameter<std::string>("ntupleOutputFileName");
00062 zdcTBAnalysis.setup(outputFileName);
00063 }
00064
00065 ZdcTBAnalyzer::~ZdcTBAnalyzer(){;}
00066
00067 void ZdcTBAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&){
00068 using namespace edm;
00069 edm::Handle<ZDCRecHitCollection> zdcRecHits;
00070 edm::Handle<HcalTBTriggerData> triggers;
00071 edm::Handle<HcalTBTiming> times;
00072 edm::Handle<HcalTBBeamCounters> bc;
00073 edm::Handle<HcalTBEventPosition> chpos;
00074
00075 e.getByLabel(zdcRecHitCollectionTag, zdcRecHits);
00076 if(triggerInfo){
00077 e.getByLabel(hcalTBTriggerDataTag, triggers);
00078 zdcTBAnalysis.analyze(*triggers);
00079 }
00080 if(beamDetectorsTDCInfo){
00081 e.getByLabel(hcalTBTimingTag, times);
00082 zdcTBAnalysis.analyze(*times);
00083 }
00084 if(beamDetectorsADCInfo){
00085 e.getByLabel(hcalTBBeamCountersTag, bc);
00086 zdcTBAnalysis.analyze(*bc);
00087 }
00088 if(wireChambersInfo){
00089 e.getByLabel(hcalTBEventPositionTag, chpos);
00090 zdcTBAnalysis.analyze(*chpos);
00091 }
00092 zdcTBAnalysis.analyze(*zdcRecHits);
00093 zdcTBAnalysis.fillTree();
00094 }
00095
00096 void ZdcTBAnalyzer::endJob(){
00097 zdcTBAnalysis.done();
00098 std::cout<<"****************ZdcTBAnalizer End**************************"<<std::endl;
00099 }
00100
00101
00102 DEFINE_FWK_MODULE(ZdcTBAnalyzer);