CMS 3D CMS Logo

EcalIsolation.cc

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    EcalIsolation
00004 // Class:      EcalIsolation
00005 // 
00013 //
00014 // Original Author:  Artur Kalinowski
00015 //         Created:  Mon Sep 11 12:48:02 CEST 2006
00016 // $Id: EcalIsolation.cc,v 1.6 2007/06/03 18:30:37 gennai Exp $
00017 //
00018 //
00019 #include <string>
00020 
00021 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00022 
00023 #include "RecoTauTag/EcalIsolation/interface/EcalIsolation.h"
00024 
00025 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00026 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00027 #include "DataFormats/CaloTowers/interface/CaloTower.h"
00028 #include "DataFormats/RecoCandidate/interface/RecoCaloTowerCandidate.h"
00029 #include "DataFormats/BTauReco/interface/EMIsolatedTauTagInfo.h"
00030 
00031 // Math
00032 #include "Math/GenVector/VectorUtil.h"
00033 #include "Math/GenVector/PxPyPzE4D.h"
00034 
00035 //
00036 // constructors and destructor
00037 //
00038 EcalIsolation::EcalIsolation(const edm::ParameterSet& iConfig):
00039   mJetForFilter(iConfig.getParameter<edm::InputTag>("JetForFilter")),
00040   mSmallCone(iConfig.getParameter<double>("SmallCone")),
00041   mBigCone(iConfig.getParameter<double>("BigCone")),
00042   pIsolCut(iConfig.getParameter<double>("Pisol")){
00043     
00044 
00045    produces<reco::EMIsolatedTauTagInfoCollection>();
00046 
00047 }
00048 
00049 
00050 EcalIsolation::~EcalIsolation()
00051 {
00052  
00053    // do anything here that needs to be done at desctruction time
00054    // (e.g. close files, deallocate resources etc.)
00055 
00056 }
00057 
00058 
00059 //
00060 // member functions
00061 //
00062 
00063 // ------------ method called to produce the data  ------------
00064 void
00065 EcalIsolation::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
00066 {
00067    using namespace edm;
00068    using namespace reco;
00069    using namespace std;
00070 
00071   // get calo jetHLT collection
00072    Handle<JetCrystalsAssociationCollection> jets;
00073    JetCrystalsAssociationCollection::const_iterator CI;
00074    iEvent.getByLabel(mJetForFilter, jets);
00075    CI = (jets.product())->begin();
00076    
00077    EMIsolatedTauTagInfoCollection* myColl = new EMIsolatedTauTagInfoCollection();
00078    
00079 
00080      int i =0;
00081    
00082    for(;CI!=(jets.product())->end();CI++){
00083      EMIsolatedTauTagInfo myTag(0,edm::Ref<JetCrystalsAssociationCollection>(jets,i));
00084      double discriminator = myTag.discriminator(mBigCone,mSmallCone,pIsolCut);
00085      myTag.setDiscriminator(discriminator);
00086      myColl->push_back(myTag);
00087      i++;
00088    }
00089    auto_ptr<EMIsolatedTauTagInfoCollection> myEMIsolTaus(myColl);
00090    iEvent.put(myEMIsolTaus);
00091 
00092 }
00093 
00094 
00095 
00096 //define this as a plug-in
00097 DEFINE_FWK_MODULE(EcalIsolation);

Generated on Tue Jun 9 17:44:58 2009 for CMSSW by  doxygen 1.5.4