CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoTBCalo/ZDCTBAnalysis/src/ZdcTBAnalyzer.cc

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);  // e.getByLabel("tbunpacker2",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 //define this as a plug-in
00102 DEFINE_FWK_MODULE(ZdcTBAnalyzer);