CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/SUSYBSMAnalysis/HSCP/interface/HSCParticleProducer.h

Go to the documentation of this file.
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