Fork me on GitHub

source: svn/trunk/interface/JetsUtil.h@ 660

Last change on this file since 660 was 567, checked in by Xavier Rouby, 14 years ago

version 1.9

File size: 4.4 KB
Line 
1#ifndef _JETSUTIL_H_
2#define _JETSUTIL_H_
3
4/***********************************************************************
5** **
6** /----------------------------------------------\ **
7** | Delphes, a framework for the fast simulation | **
8** | of a generic collider experiment | **
9** \------------- arXiv:0903.2225v1 ------------/ **
10** **
11** **
12** This package uses: **
13** ------------------ **
14** ROOT: Nucl. Inst. & Meth. in Phys. Res. A389 (1997) 81-86 **
15** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] **
16** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] **
17** FROG: [hep-ex/0901.2718v1] **
18** HepMC: Comput. Phys. Commun.134 (2001) 41 **
19** **
20** ------------------------------------------------------------------ **
21** **
22** Main authors: **
23** ------------- **
24** **
25** Severine Ovyn Xavier Rouby **
26** severine.ovyn@uclouvain.be xavier.rouby@cern **
27** **
28** Center for Particle Physics and Phenomenology (CP3) **
29** Universite catholique de Louvain (UCL) **
30** Louvain-la-Neuve, Belgium **
31** **
32** Copyright (C) 2008-2009, **
33** All rights reserved. **
34** **
35***********************************************************************/
36
37#include <vector>
38#include "TLorentzVector.h"
39
40#include "SmearUtil.h"
41#include "BlockClasses.h"
42#include "TSimpleArray.h"
43#include "ExRootTreeReader.h"
44#include "ExRootTreeWriter.h"
45#include "ExRootTreeBranch.h"
46#include "PhysicsTower.hh"
47#include "TRandom.h"
48#include <iostream>
49#include <sstream>
50#include <fstream>
51#include <iomanip>
52#include <cstring>
53#include "PseudoJet.hh"
54#include "ClusterSequence.hh"
55
56// get info on how fastjet was configured
57#include "Utilities/Fastjet/include/fastjet/config.h"
58
59// make sure we have what is needed
60#ifdef ENABLE_PLUGIN_SISCONE
61# include "SISConePlugin.hh"
62#endif
63#ifdef ENABLE_PLUGIN_CDFCONES
64# include "CDFMidPointPlugin.hh"
65# include "CDFJetCluPlugin.hh"
66#endif
67
68using namespace std;
69
70class JetsUtil
71{
72 public:
73 /// Constructor
74 JetsUtil();
75 JetsUtil(const string& DetDatacard);
76 JetsUtil(const RESOLution* DetDatacard);
77 JetsUtil(const JetsUtil& jet);
78 JetsUtil& operator=(const JetsUtil& jet);
79 ~JetsUtil() {delete DET; delete plugins;};
80 void init(); // for constructors
81
82 vector<fastjet::PseudoJet> RunJets(const vector<fastjet::PseudoJet>& input_particles, const vector<TRootTracks> & TrackCentral, vector<int> &NTrackJet, vector<float> &EHADEEM, D_CaloTowerList list_of_active_towers, vector<int> &NCALO);
83
84 vector<fastjet::PseudoJet> RunJetsResol(const vector<fastjet::PseudoJet>& input_particles);
85
86 void RunJetBtagging(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchJet,const vector<fastjet::PseudoJet> & sorted_jets,const TSimpleArray<TRootC::GenParticle> & NFCentralQ, const vector<int> &NTrackJet, const vector<float> &EHADEEM, const vector<int> &NCALO);
87
88 void RunTauJets(ExRootTreeWriter *treeWriter, ExRootTreeBranch *branchTauJet,const vector<fastjet::PseudoJet> & sorted_jets,const vector<PhysicsTower> & towers, const vector<TRootTracks> & TrackCentral, const vector<int> &NTrackJet, const vector<float> &EHADEEM,const vector<int> &NCALO);
89
90 private:
91 RESOLution *DET;
92 fastjet::JetDefinition jet_def;
93 fastjet::JetDefinition::Plugin * plugins;
94 vector<fastjet::PseudoJet> inclusive_jets;
95 vector<fastjet::PseudoJet> sorted_jets;
96};
97
98#endif
Note: See TracBrowser for help on using the repository browser.