#ifndef _JETSUTIL_H_ #define _JETSUTIL_H_ /*********************************************************************** ** ** ** /----------------------------------------------\ ** ** | Delphes, a framework for the fast simulation | ** ** | of a generic collider experiment | ** ** \----------------------------------------------/ ** ** ** ** ** ** This package uses: ** ** ------------------ ** ** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] ** ** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] ** ** FROG: [hep-ex/0901.2718v1] ** ** ** ** ------------------------------------------------------------------ ** ** ** ** Main authors: ** ** ------------- ** ** ** ** Severine Ovyn Xavier Rouby ** ** severine.ovyn@uclouvain.be xavier.rouby@cern ** ** ** ** Center for Particle Physics and Phenomenology (CP3) ** ** Universite catholique de Louvain (UCL) ** ** Louvain-la-Neuve, Belgium ** ** ** ** Copyright (C) 2008-2009, ** ** All rights reserved. ** ** ** ***********************************************************************/ #include #include "TLorentzVector.h" #include "SmearUtil.h" #include "BlockClasses.h" #include "TSimpleArray.h" #include "ExRootTreeReader.h" #include "ExRootTreeWriter.h" #include "ExRootTreeBranch.h" #include "PhysicsTower.hh" #include "TRandom.h" #include #include #include #include #include #include "PseudoJet.hh" #include "ClusterSequence.hh" // get info on how fastjet was configured #include "Utilities/Fastjet/include/fastjet/config.h" // make sure we have what is needed #ifdef ENABLE_PLUGIN_SISCONE # include "SISConePlugin.hh" #endif #ifdef ENABLE_PLUGIN_CDFCONES # include "CDFMidPointPlugin.hh" # include "CDFJetCluPlugin.hh" #endif using namespace std; class JetsUtil { public: /// Constructor JetsUtil(); JetsUtil(const string& DetDatacard); JetsUtil(const RESOLution* DetDatacard); JetsUtil(const JetsUtil& jet); JetsUtil& operator=(const JetsUtil& jet); ~JetsUtil() {delete DET; delete plugins;}; void init(); // for constructors vector RunJets(const vector& input_particles, const vector & TrackCentral, vector &NTrackJet, vector &EHADEEM, D_CaloTowerList list_of_active_towers); vector RunJetsResol(const vector& input_particles); void RunJetBtagging(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchJet,const vector & sorted_jets,const TSimpleArray & NFCentralQ, const vector &NTrackJet, const vector &EHADEEM); void RunTauJets(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchTauJet,const vector & sorted_jets,const vector & towers, const vector & TrackCentral, const vector &NTrackJet, const vector &EHADEEM); private: RESOLution *DET; fastjet::JetDefinition jet_def; fastjet::JetDefinition::Plugin * plugins; vector inclusive_jets; vector sorted_jets; }; #endif