CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/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.6 2011/04/20 09:17:15 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 class HSCParticleProducer : public edm::EDFilter {
00057   public:
00058     explicit HSCParticleProducer(const edm::ParameterSet&);
00059     ~HSCParticleProducer();
00060 
00061   private:
00062     virtual void beginJob() ;
00063     virtual bool filter(edm::Event&, const edm::EventSetup&);
00064     virtual void endJob() ;
00065 
00066     std::vector<susybsm::HSCParticle> getHSCPSeedCollection(edm::Handle<reco::TrackCollection>& trackCollectionHandle,  edm::Handle<reco::MuonCollection>& muonCollectionHandle);
00067 
00068     // ----------member data ---------------------------
00069     bool          Filter_;
00070 
00071     edm::InputTag m_trackTag;
00072     edm::InputTag m_trackIsoTag;
00073     edm::InputTag m_muonsTag;
00074 
00075     bool         useBetaFromTk;
00076     bool         useBetaFromMuon;
00077     bool         useBetaFromRpc;
00078     bool         useBetaFromEcal;
00079 
00080     float        minTkP;
00081     float        maxTkChi2;
00082     unsigned int minTkHits;
00083     float        minMuP;
00084     float        minDR;
00085     float        maxInvPtDiff;
00086 
00087     BetaCalculatorTK*   beta_calculator_TK;
00088     BetaCalculatorMUON* beta_calculator_MUON;
00089     BetaCalculatorRPC*  beta_calculator_RPC;
00090     BetaCalculatorECAL* beta_calculator_ECAL;
00091 
00092     std::vector<CandidateSelector*> Selectors;
00093 };
00094 
00095