CMS 3D CMS Logo

TtSemiEvtKit.cc

Go to the documentation of this file.
00001 #include "TopQuarkAnalysis/Examples/interface/TtSemiEvtKit.h"
00002 
00003 #include "DataFormats/Math/interface/LorentzVector.h"
00004 #include "PhysicsTools/CandUtils/interface/AddFourMomenta.h"
00005 
00006 using namespace std;
00007 using namespace pat;
00008 
00009 //
00010 // constructors and destructor
00011 //
00012 TtSemiEvtKit::TtSemiEvtKit(const edm::ParameterSet& iConfig) 
00013   :
00014   verboseLevel_(0)
00015 //   helper_(iConfig)
00016 {
00017 
00018 //   helper_.bookHistos(this);
00019 
00020 //   evtsols           = iConfig.getParameter<edm::InputTag> ("EvtSolution");
00021 
00022 //   cout << "About to book histoTtSemiEvtHypothesis" << endl;
00023 
00024 
00025 //   PhysicsHistograms::KinAxisLimits compositeAxisLimits;
00026 
00027 //   compositeAxisLimits = helper_.getAxisLimits("topAxis");
00028 
00029 //   double pt1 = compositeAxisLimits.pt1;
00030 //   double pt2 = compositeAxisLimits.pt2;
00031 //   double m1  = compositeAxisLimits.m1;
00032 //   double m2  = compositeAxisLimits.m2;
00033 
00034 //   histoTtSemiEvt_ = new HistoComposite("ttSemiEvt", "ttSemiEvt", "ttSemiEvt",
00035 //                                     pt1, pt2, m1, m2);
00036 
00037 
00038 //   edm::Service<TFileService> fs;
00039 //   TFileDirectory ttbar = TFileDirectory( fs->mkdir("ttbar") );
00040 
00041 //   histoLRJetCombProb_ = new PhysVarHisto( "lrJetCombProb", "Jet Comb Probability",
00042 //                                        100, 0, 1, &ttbar, "", "vD" );
00043 //   histoLRSignalEvtProb_ = new PhysVarHisto( "lrSignalEvtProb", "Event Probability",
00044 //                                        100, 0, 1, &ttbar, "", "vD" );
00045 //   histoKinFitProbChi2_ = new PhysVarHisto( "kinFitProbChi2", "Kin Fitter Chi2 Prob",
00046 //                                        100, 0, 1, &ttbar, "", "vD" );
00047 
00048 
00049 //   histoLRJetCombProb_ ->makeTH1();
00050 //   histoLRSignalEvtProb_ ->makeTH1();
00051 //   histoKinFitProbChi2_ ->makeTH1();
00052 
00053 //   helper_.physHistos_->addHisto( histoLRJetCombProb_ );
00054 //   helper_.physHistos_->addHisto( histoLRSignalEvtProb_ );
00055 //   helper_.physHistos_->addHisto( histoKinFitProbChi2_ );
00056   
00057 }
00058 
00059 TtSemiEvtKit::~TtSemiEvtKit() 
00060 {
00061 }
00062 
00063 //
00064 // member functions
00065 //
00066 
00067 // ------------ method called to for each event  ------------
00068 void TtSemiEvtKit::produce( edm::Event& iEvent, const edm::EventSetup& iSetup) 
00069 {
00070 //   using namespace edm;
00071 
00072 //   // INSIDE OF LepJetMetKit::produce:
00073 
00074 //   // --------------------------------------------------
00075 //   //    Step 1: Retrieve objects from data stream
00076 //   // --------------------------------------------------
00077 //   helper_.getHandles( iEvent,
00078 //                    muonHandle_,
00079 //                    electronHandle_,
00080 //                    tauHandle_,
00081 //                    jetHandle_,
00082 //                    METHandle_,
00083 //                    photonHandle_);
00084 
00085 //   // --------------------------------------------------
00086 //   //    Step 2: invoke PhysicsHistograms to deal with all this.
00087 //   //
00088 //   //    Note that each handle will dereference into a vector<>,
00089 //   //    however the fillCollection() method takes a reference,
00090 //   //    so the collections are not copied...
00091 //   // --------------------------------------------------
00092 
00093 //   if ( verboseLevel_ > 10 )
00094 //     std::cout << "PatAnalyzerKit::analyze: calling fillCollection()." << std::endl;
00095 //   helper_.fillHistograms( iEvent,
00096 //                        muonHandle_,
00097 //                        electronHandle_,
00098 //                        tauHandle_,
00099 //                        jetHandle_,
00100 //                        METHandle_,
00101 //                        photonHandle_);
00102 
00103 //   // --------------------------------------------------
00104 //   //    Step 3: Plot LepJetMet data
00105 //   // --------------------------------------------------
00106 
00107 
00108 //   // BEGIN TtSemiEvt analysis here:
00109 
00110 //    // get the event solution
00111 //    edm::Handle< std::vector<TtSemiEvtSolution> > eSols; 
00112 //    iEvent.getByLabel(evtsols, eSols);
00113 
00114 // //    cout << "TtSemiEvtKit: About to do work on sols" << endl;
00115 //    const std::vector<TtSemiEvtSolution> & sols = *eSols;
00116 // //    cout << "Done getting vector ref to sols" << endl;
00117   
00118 //    if ( sols.size() > 0 ) {
00119 
00120 // //      cout << "Sols.size() > 0 " << endl;
00121 
00122 // //      cout << "TtSemiEvtKit: Getting best solution" << endl;
00123 //      int bestSol = sols[0].getLRBestJetComb();   
00124 //      if ( bestSol >= 0 ) {
00125        
00126      
00127 // //      cout << "About to fill the ttSemiEvt solution : " << bestSol << endl;
00128 //        histoTtSemiEvt_->fill( sols[bestSol].getRecoHyp() );
00129 
00130      
00131 //        histoLRJetCombProb_->fill( sols[bestSol].getLRJetCombProb());
00132 //        histoLRSignalEvtProb_->fill( sols[bestSol].getLRSignalEvtProb());
00133 //        histoKinFitProbChi2_->fill( sols[bestSol].getProbChi2());
00134 //      }
00135 //    }
00136 
00137 
00138 //    histoLRJetCombProb_->clearVec();
00139 //    histoLRSignalEvtProb_->clearVec();
00140 //    histoKinFitProbChi2_->clearVec();
00141    
00142   
00143    // cout << "Done with produce" << endl;
00144 }
00145 
00146 
00147 // ------------ method called once each job just before starting event loop  ------------
00148 void
00149 TtSemiEvtKit::beginJob(const edm::EventSetup& iSetup)
00150 {
00151 }
00152 
00153 
00154 
00155 // ------------ method called once each job just after ending the event loop  ------------
00156 void
00157 TtSemiEvtKit::endJob() {
00158 }

Generated on Tue Jun 9 17:48:05 2009 for CMSSW by  doxygen 1.5.4