![]() |
![]() |
00001 // -*- C++ -*- 00002 // 00003 // Package: HSCParticleProducer 00004 // Class: HSCParticleProducer 00005 // 00013 // 00014 // Original Author: Rizzi Andrea 00015 // Reworked and Ported to CMSSW_3_0_0 by Christophe Delaere 00016 // Created: Wed Oct 10 12:01:28 CEST 2007 00017 // $Id: HSCParticleProducer.h,v 1.5 2010/12/16 17:08:02 querten Exp $ 00018 00019 00020 // system include files 00021 #include <memory> 00022 00023 // user include files 00024 #include "FWCore/Framework/interface/Frameworkfwd.h" 00025 #include "FWCore/Framework/interface/EDFilter.h" 00026 #include "FWCore/Framework/interface/Event.h" 00027 #include "FWCore/Framework/interface/MakerMacros.h" 00028 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00029 #include "FWCore/ServiceRegistry/interface/Service.h" 00030 #include "FWCore/Framework/interface/ESHandle.h" 00031 00032 #include "CommonTools/UtilAlgos/interface/DeltaR.h" 00033 00034 00035 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00036 #include "DataFormats/TrackReco/interface/Track.h" 00037 #include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorTK.h" 00038 #include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorMUON.h" 00039 #include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorRPC.h" 00040 #include "SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h" 00041 #include "SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h" 00042 00043 #include "CommonTools/UtilAlgos/interface/TFileService.h" 00044 #include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h" 00045 #include "Math/GenVector/VectorUtil.h" 00046 00047 #include <TNtuple.h> 00048 #include <TF1.h> 00049 00050 #include <vector> 00051 #include <iostream> 00052 00053 // 00054 // class decleration 00055 // 00056 using namespace susybsm; 00057 class HSCParticleProducer : public edm::EDFilter { 00058 public: 00059 explicit HSCParticleProducer(const edm::ParameterSet&); 00060 ~HSCParticleProducer(); 00061 00062 private: 00063 virtual void beginJob() ; 00064 virtual bool filter(edm::Event&, const edm::EventSetup&); 00065 virtual void endJob() ; 00066 00067 std::vector<HSCParticle> getHSCPSeedCollection(edm::Handle<reco::TrackCollection>& trackCollectionHandle, edm::Handle<reco::MuonCollection>& muonCollectionHandle); 00068 00069 // ----------member data --------------------------- 00070 bool Filter_; 00071 00072 edm::InputTag m_trackTag; 00073 edm::InputTag m_trackIsoTag; 00074 edm::InputTag m_muonsTag; 00075 00076 bool useBetaFromTk; 00077 bool useBetaFromMuon; 00078 bool useBetaFromRpc; 00079 bool useBetaFromEcal; 00080 00081 float minTkP; 00082 float maxTkChi2; 00083 unsigned int minTkHits; 00084 float minMuP; 00085 float minDR; 00086 float maxInvPtDiff; 00087 00088 BetaCalculatorTK* beta_calculator_TK; 00089 BetaCalculatorMUON* beta_calculator_MUON; 00090 BetaCalculatorRPC* beta_calculator_RPC; 00091 BetaCalculatorECAL* beta_calculator_ECAL; 00092 00093 std::vector<CandidateSelector*> Selectors; 00094 }; 00095 00096