// $Id$ // // Copyright (c) -, // //---------------------------------------------------------------------- // This file is part of FastJet contrib. // // It is free software; you can redistribute it and/or modify it under // the terms of the GNU General Public License as published by the // Free Software Foundation; either version 2 of the License, or (at // your option) any later version. // // It is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public // License for more details. // // You should have received a copy of the GNU General Public License // along with this code. If not, see . //---------------------------------------------------------------------- #include #include #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" #include #include "MVATopTagger.hh" // In external code, this should be fastjet/contrib/MVATopTagger.hh using namespace std; using namespace fastjet; using namespace fastjet::contrib; // forward declaration to make things clearer void read_event(vector &event); //---------------------------------------------------------------------- int main(){ //---------------------------------------------------------- // read in input particles vector event; read_event(event); cout << "# read an event with " << event.size() << " particles" << endl; //---------------------------------------------------------- // illustrate how this MVATopTagger contrib works JetDefinition jet_def(antikt_algorithm, 1.0); ClusterSequence cs(event, jet_def); vector jets = sorted_by_pt(cs.inclusive_jets()); MVATopTagger tagger; for (unsigned i = 0; i < jets.size(); i++) { cout << i << " " << jets[i].pt() << " " << jets[i].m() << " " << tagger(jets[i]) << endl; } return 0; } // read in input particles void read_event(vector &event){ string line; while (getline(cin, line)) { istringstream linestream(line); // take substrings to avoid problems when there are extra "pollution" // characters (e.g. line-feed). if (line.substr(0,4) == "#END") {return;} if (line.substr(0,1) == "#") {continue;} double px,py,pz,E; linestream >> px >> py >> pz >> E; PseudoJet particle(px,py,pz,E); // push event onto back of full_event vector event.push_back(particle); } }