Home
SpartyJet 4.0 User`s Manual
Contents
1. ture development of jet tools will be done within the context of FASTJET with development in SPARTYJET focused on the Python interface I O facilities and graphical interaction As noted in 4 the planned future development of FASTJET includes a contrib project of externally written code We envision that many external tools currently provided with SPARTYJET will migrate to this space when it becomes available In the meantime see ExternalTools README for details on the origins and authorship of the tools in that directory To add your own tools to SPARTYJET you will need to either create a shared library that a links against compiled C code or b is loaded by ROOT See the comments in UserPlugins Makefile for more information on creating such a library or including your own code in SPARTYJET s build UserPlugins ExamplePlugin gives an example Note In this section we sometimes switch from Python to C syntax for clarity of argument types 5 1 Jet finders All jet finding is done via FASTJET jet algorithms The basic wrapper is de fined in Fast JetTools Fast JetFinder hh There are two basic operations jet finding and reclustering FastJetFinder Finds jets using FASTJET algorithms It has two constructors FastJetFinder string name fastjet JetAlgorithm alg double R 0 4 bool area false FastJetFinder fastjet JetDefinition string name bool area false The second form allows you to pass your own fastjet JetD
2. with a set of recombinations In this implementation SPARTYJET will run a FASTJET algorithm of the user s choice on the constituents of a given jet It can be called with either of the following constructors YSplitterTool float R fastjet JetAlgorithm alg int ny int njet YSplitterTool fastjet JetDefinition jet_def int ny int njet where njet is the number of jets for which the y values will be calculated and ny is the number of y values to calculate for each jet 14 5 5 Miscellaneous tools ForkToolParent and ForkToolChild This pair of tools allows the forking of JetTool chains ForkToolParent merely saves a copy of its input A ForkToolChild is associated with a specific parent and it reads in the JetCollection saved by its parent This allows for example one jet algorithm to be run combined with several different jet modifying tool chains for comparison See FJToolExample py for a usage example CalorimeterSimTool This tool applies a very simple calorimeter simulation to its input jets Inputs are sorted into calorimeter cells on a specified n o grid For each non empty cell a massless output particle is created with the direction of the cell and the total energy of all particles in the cell RadialSmearingTool This tool wraps Peter Loch s DetectorModel code for calorimeter simulation For more information see Peter s A usage example is given in Boost2011 py JetNegEnergyTool This tool is meant to be run twice o
3. T Plehn G P Salam and M Spannowsky Fat jets for a light Higgs Phys Rev Lett 104 2010 111801 larXiv 0910 5472 hep ph T Plehn M Spannowsky M Takeuchi and D Zerwas Stop reconstruction with tagged tops JHEP 1010 2010 078 arXiv 1006 2833 hep ph CMS Collaboration R Adolphi et al A Cambridge Aachen C A based jet algorithm for boosted top jet tagging tech rep 2009 CMS Collaboration Search for BSM tt production in the boosted all hadronic final state Tech Rep CMS PAS EXO 11 006 CERN 2011 A Hook M Jankowiak and J G Wacker Jet dipolarity Top tagging with color flow arXiv 1102 1012 hep ph J Thaler and L T Wang Strategies to identify boosted tops JHEP 07 2008 092 arXiv 0806 0023 hep ph ATLAS Collaboration G Brooijmans High pt hadronic top quark identification part 1 Jet mass and ysplitter Tech Rep ATL PHYS CONF 2008 008 CERN Geneva 2008 J Thaler and K Van Tilburg Identifying boosted objects with N subjettiness JHEP 03 2011 015 jarXiv 1011 2268 hep ph M Jankowiak and A J Larkoski Jet substructure without trees JHEP 1106 2011 057 arXiv 1104 1646 hep ph Y Cui Z Han and M D Schwartz W jet tagging Optimizing the identification of boosted hadronically decaying W bosons Phys Rev D83 2011 074023 arXiv 1012 2077 hep ph 24
4. True the JetBuilder will draw the number of MB events from a Poisson distribution default is False In this case n is the Poisson mean or expected number of MB events 4 5 Options controlling screen output SPARTYJET can be configured to produce screen output at varying levels of verbosity The most important point of control is the global message level which can be one of DEBUG INFO WARNING ERROR Each message produced in the course has an associated level and will be printed to the screen if its level is at least as high as the global level e g if the global level is WARNING WARNING and ERROR messages will be printed The global message level can be set in the JetBuilder constructor or later via the JetBuilder set_message_level method builder SJ JetBuilder SJ INFO or builder set_message_level SJ WARNING equivalent to set_message_level SJ ERROR builder silent_mode SPARTYJET will report on the progress of the run by printing Processed Event N lines by default every event You can change the frequency via prints every 100 events builder print_event_every 100 4 6 Running Once all analyses have been set up and all options loaded it s time to run To run over all events in the input simply do builder process_events You can also specify how many events to process and what event number to begin at process 100 events starting at the 250th builder process_events 100 250 alia
5. a sequence of input JetTools and passes the output to several JetAnalyses labeled JetAlgorithms in this diagram JetAnalyses consist of a sequence of JetTools that are run sequentially The output of each JetAnalysis is passed to an NTupleMaker which stores the final jets and accompanying moments in a file 4 2 JetAnalysis Options JetAnalyses are blocks of code that act on a set of Jets implemented as a JetCollection A set of JetTools forms a JetAnalysis and a JetBuilder holds a set of JetAnalyses that are each run on its inputs Examples of specific tools can be found in Sec JetAnalyses can be added to a run via builder add_analysis analyis Alternatively analyses can be set up implicitly by just passing the JetBuilder a JetTool builder add_default_analysis tool where tool is typically a jet finder which forms the basis of the tool chain Default tools are added before and after currently just negative energy cor rectors if this option is enabled it is not by default To enable negative energy correction call builder do_correct_neg_energy True This flips the sign of the energy of any negative energy input particles then after jet finding adjusts jets energies accordingly JetTools can be added directly to analyses or through the JetBuilder add a tool a specific analysis analysis add_too1 too1 add a tool to all analyses registered with builder builder add_jetTool tool add a tool to a spec
6. can also do SJ kArray and SJ kDouble builder set_output_type SJ kVector SJ kFloat default This affects the jet momentum variables but not jet or event moments Jet moments are always stored as vector lt T gt where T was the template parameter to the jet moment the type that the moment returned Event moments are simply stored as bare Ts 7 2 Constituents For all analyses constituent information is saved as follows assuming that the analysis was added to the JetBuilder with option withIndex True this is the default Assuming an analysis named MyJet has been added two additional variables are stored in the ROOT TTree My Jet_numC MyJet_ind MyJet_numC is an array of size MyJet_N MyJet_numC i is the number of constituents of i th jet MyJet_ind is an array of size Input Jet_N MyJet_ind i is the index of the jet to which the i th input constituent has been assigned For example myTree Draw InputJet_e Antikt10_ind 0 will give the energy distribution of constituents in jet number 0 i e highest pr jets for the AntiKt10 collection 8 Graphical interface SPARTYJET output ROOT files can be explored with a graphical interface launchable by running gt sparty foo root bar root spartyjet bin must be in your PATH A screenshot of the GUI in action is shown in Fig The user can select which algorithms to view by ticking the boxes under JetCollections On the left are several event by event
7. defined in spartyjet ExternalTools Examples of their use can be found in examples_py Boost2011 py MinMassFunction Finds three exclusive subjets then measures the smallest invariant mass between any two as in the CMS top tagger 15 16 zCellFunction Measures the zce1 variable of the Thaler and Wang top tagger I8 zCutFunction Measures the 21 of the ATLAS top tagger I9 Nsubjettiness Measures the version of N subjettiness described in 20 The following are other moment storing tools available They may be phased out in favor of more explicitly FASTJET based versions HullMomentTool This tool finds the convex hull enclosing each jet and saves the hull length and area as Hull and HullA respectively EtaPhiMomentTool This tool calculates angular second moments in 7 and of each jet stores them as M2eta and M2phi PtDensityTool This tool calculates each event s pr density using FASTJET It does this by finding all the jets in the event with no minimum pr requirement It then extracts the pr density from these jets by selecting the mean py density for each bin in y These pr densities are stored as ptDensity and the y bin limits are stored as ptDensityBins JetAreaCorrectionTool This tool uses the area of each jet and the pTDen sity found by the PtDensityTool to calculate a correction stored as jet moment JetAreaCorr to the jet s pr YSplitterTool This tool uses FASTJET to calculate the y values associated
8. is False no checks will be done An alternative to this method of dealing with bad input is to use the JetNegEnergyTool described in Sec BJ Reading of PDG ID codes The InputMaker can be set to read PDG ID codes from the input data with the following function This is done by default input readPdgld True This makes the PDG IDs available for input selection and saves the IDs of the input particles for offline analysis 7 Output After a SPARTYJET run the result is a ROOT TTree containing jet variables for each algorithm added plus variables for input particles to the jet algorithms Jet and event moments are also stored The output ROOT file contains a TTree the file and TTree name are set via builder configure_output treename filename The TTree con tains a branch for each jet variable named by default AnalysisName_eta AnalysisName_phi AnalysisName_e AnalysisName_mass AnalysisName_pt For this reason it is important that each analysis have a unique name If input particles are being stored there are similar branches for the input parti cles Every jet moment has an associated name and is stored in a branch named AnalysisName momentName For each analysis an integer variable AnalysisName_N is stored giving the number of jets for each event 7 1 Output variable type It is possible to choose the type of the variable saved in the TTree The choices are C array vs STL vector and floats vs doubles 19
9. lines between the events Event event N n only the E or e is important in the first two The form of the four vectors should be E px py pz This input is configured simply with input SJ StdTextInput data J1_Clusters dat Tf the form is the opposite px py pz E then call the function input invert_input_order True and it will be read in properly An example of this input can be seen in data J1_Clusters dat 17 6 3 StdHepInput Sample data ttbar_smallrun_pythia_events hep This form of input reads StdHEP format XDR files It will look for particles with the status code of 1 final state It is also able extract the PDG ID code for each particle from the input data to allow further filtering and matching Access to intermediate particles such as the participants in the hard scattering or B hadrons from b quark decays should be possible in the near future This input is configured simply with SJ StdHepInput data ttbar_smallrun_pythia_events hep NOTE To read StdHep files you must enable StdHep compilation as ex plained in Section 3 6 4 CalchepPartonTextInput Sample data gg_ggg_events dat This form of input reads output from CalcHEP It reads in the number of ini tial and final state particles and then for each event saves only the information for the final state particles This input is configured simply with SJ CalchepPartonTextInput data gg_ggg_events dat 6 5 H
10. the variables are stored In this example we see lines like vector lt float gt Cluster_eta indicating that our 4 vectors are stored in vectors of floats Now to configure SPARTYJET to accept this we need to e Create an NtupleInputMaker of the correct type in our case vector lt float gt for eta phi pt E input SJ NtupleInputMaker SJ NtupleInputMaker EtaPhiPtE_vector_float For full list of Input codes see JetCore InputMaker_Ntuple hh e Configure the names of the TBranches input set_prefix Cluster_ input set_n_name N input set_variables eta phi p_T e input setFileTree data J2_clusters root clusterTree 16 e Specify if input is massless only useable in eta phi pt E mode if true pt is ignored input set_masslessMode True e Set the input file and tree names input setFileTree data J2_clusters root clusterTree Python Shortcut To allow SPARTYJET to configure your Ntuple using some assumptions use the following helper function input createNtupleInputMaker data J2_clusters root inputprefix Cluster DelphesInput DelphesInputMaker is a minor extension of NTupleInputMaker that reads the ROOT files produced by the detector simulator DELPHES Only calorimeter cells are read in 6 2 StdTextInput Sample data J1_Clusters dat This form of input reads ASCII files To separate events put one of the following
11. views which will be drawn separately for each algorithm The number of rows and columns are set in the upper left Additional analyses can be run event by event on the fly using the menu in the lower left These are based on a new live algorithm facility in the SPARTY JET Python package which extends certain common analyses with knowledge of their input parameters so the GUI can build them live with user provided parameters These analyses can be run on the inputs from any file loaded on launch In particular you can launch the GUI with one or more ROOT files with no analyses run at all only inputs On the fly analyses provide a sim ple and powerful way to explore jet analysis dynamics and we hope to extend these capabilities in future releases High on our wish list is event generator integration which would make the GUI self contained 20 On the right side of the control panel full run plots can be selected which are plotted for all algorithms together an example of this output is shown in Fig 3 Check boxes are provided for the standard four momentum variables but any stored jet moment can also be plotted by entering the name in the box below e g _tau3 _tau2 to plot the ratio of 3 to 2 subjettiness if the Nsubjettiness moment has been measured as in Boost2011 py Note that is a placeholder for the analysis name and the syntax is that of TTree Draw Moments found in the input files are also given in the box belo
12. within SPARTYJET the idea is to take a pre trained W tagging method and plug it into a SPARTYJET analysis Since the tagger is taken out of the box there are no input parameters WTaggerToo1 15 6 Input All SPARTYJET jobs need an InputMaker object to read input from some data file and prepare a list of four vectors for JetAnalyses to process There are several types of InputMakers available An example of the implementation for each type of input can be seen in examples_py inputExample py For Python scripts the top level module python spartyjet __init__ py defines the helper function getInputMaker fileName which will create the appropri ate InputMaker by looking at the filename extension 6 1 NtupleInputMaker Sample data J2_clusters root This form of input reads ROOT files This InputMaker requires the com ponents of the input 4 vectors to be stored in separate branches of a ROOT TTree The following definitions are supported e px py pz E e psuedo rapidity phi pt E e psuedo rapidity phi pt m You need only specify how the information is stored array or vector float or double and the names of the branches As an example to set up an NtupleInputMaker to read the file data J2_clusters root if you don t know how variables are internally stored in your ntuple do the fol lowing root 1 data J2_clusters root root 0 clusterTree gt MakeClass test Open the file test h and check to see how
13. JET compile its own version Note also that to enable all FASTJET plugins you must pass the enable allcxxplugins flag to configure This is done by default for the built in version e StdHEP libraries These require a Fortran compiler and are automat ically compiled if you have gfortran 77 or g77 in your PATH If you would like to try a different compiler set the environmental variable F77 to the compiler binary e Pythia 6 8 interface If you have ROOT compiled with the Pythia 6 and or Pythia 8 interfaces enabled you can use this from within SPARTY JET to generate events in Pythia and feed the output directly to SPARTY JET To enable this set the variable PYTHIA6DIR and or PYTHIASDIR If you do not have PYTHIA support in ROOT you can add it by doing cd ROOTSYS configure enable pythia6 enable pythia8 with pythia6 libdir my pythia6 with pythia8 incdir my pythia8145 include with pythia8 libdir my pythia8145 lib make Building SPARTYJET creates a set of libraries in spartyjet lib that you can load from a ROOT session or Python script or you can link to to build an executable libs libExternal so FASTJET and other code SPARTYJET depends on libs libJetCore so Core infrastructure libs libIO so Facilities for reading and writing a variety of file formats libs libFastJet so Tools that rely on FASTJET including jet finding libs libJet Tools so Other JetTools libs libEventShape so Thr
14. SPARTYJET 4 0 User s Manual Pierre Antoine Delsart Kurtis L Geerlings Joey Huston Brian T Martin and Christopher K Vermilion January 17 2012 Contents 2 A simple example 3_ Installation 3 1 Requirements o ee eee ee ee cS tate e oS Bey E BN A AE 9 4 CMake build 4 44 4 4 456 bso ee een eee eeeaas 4 1 Input Functions o 0 2 00202 2 ee 4 3 Output options 4 4 Minimum Bias Overlay 4 5 Options controlling screen OU tpUtl o 4 6 RUNING lt lt sos ara dar ee aS 5 1 Jet Emders a a a a 5 2 Selectors e e ca aca dod toaa e Se Bw Se eee aS 0 3 Transformers areae e a Re ee RE DR RR eS 5 4 Jet and event moment tools 00 5 5 Miscellaneous tools oaoa aoa a a a a ee 6 1 NtupleInputMaker 6 2 StdTextInput bo har te ae oe he Bae See he ee eG aie ee aE PARRA 6 4 CalchepPartonTextlnmputl o 6 5 HepMCInputl exo cesar ee ca a A a ee 6 6 Pythialnput 24 ei cis id do eR a ead 6 7 FourVecinput e e 18 6 8 Input Options siaaa ra 19 7 Output 19 7 1 Output variable type o o e 19 T2 Constituentel lt ae Ad es RR A a RRA 20 8 Graphical interface 20 1 Overview SPARTYJET is a set of software tools for jet finding and analysis built around the FASTJET library of jet algorithms I 2 SPARTYJET provides four key extensions to FASTJET a simple Py
15. See the comments in UserPlugins Makefile for more information on including your own classes in SPARTYJET The currently available set of Transformers is FasTJET native Boost Boost a jet to the rest frame of a reference jet CASubJetTagger Versatile and generic substructure identification for Cam bridge Aachen jets 12 Filter Recluster a jet with a smaller R and only keep subjets passing a given criterion 8 GridMedianBackgroundEstimator Two different ways of estimating back ground radiation JetMedianBackgroundEstimator MassDropTagger Tagger that peels off soft radiation until a splitting is found where the two parents have significantly less mass than the child 8 RestFrameNSubjettinessTagger Implements the rest frame version of the N subjettiness jet shape 9 Subtractor Subtracts estimated background energy JHTopTagger The Johns Hopkins top tagger 10 Unboost Unboost a jet from the rest frame of a reference jet Pruner Rebuilds a jet with a new cluster sequence vetoing soft large angle mergings 11 2 External tools included with SPARTYJET HEPTopTagger An implementation of the HEPTopTagger of 13 14 provided by the authors CMSTopTagger An implementation of the CMS top tagger 16 written by one of the SPARTYJET authors based on JHTopTagger TopTaggerDipolarityTool Adds dipolarity I7 to any top tagger running the tagger then storing the dipolarity measured on its substruc
16. T extensively for input output and Python wrapping via PyROOT SPARTYJET 4 0 has been tested with versions 5 30 and 5 32 but older versions may be OK To use the Python interface to SPARTY JET you must have built ROOT with PyROOT enabled We have tested with Python versions 2 6 and 2 7 SPARTYJET now makes heavy use of recent FAST JET features so FASTJET version 3 0 is required If you do not already have FASTJET installed SPARTYJET can build an internal version If you want to use the StdHEP input facility you will need a Fortran compiler we ve tested with gfortran 3 2 Compilation To compile Set up ROOT such that root config is in your path for example source root bin thisroot sh cd spartyjet source setup sh make If you do not already have FASTJET installed domake fastjet and source setup sh again before make This builds FASTJET inside SPARTYJET and sets the rele vant environment variables SPARTYJET has several building options to note e FastJet SPARTYJET depends on FASTJET for jet finding and some inter nal features and the latest version is included in the SPARTYJET distribu tion If you prefer to use your own installation simply add your fastjet bin to the environmental variable PATH such that fastjet config can be found NOTE If you have linking problems between your version of FASTJET and SPARTYJET either recompile your FASTJET with the with pic option enabled before compilation or have SPARTY
17. as well as via some duck punching in the SPARTYJET Python wrapper the binary operations amp amp and Note that s1 s2 applies s2 then s1 s1 amp amp s2 applies both separately The result is the same iff the selectors commute Many native SPARTYJET selectors are defined in JetTools JetSelectorTool hh the ones that do not duplicate a FASTJET selector and are thus not deprecated are JetInputPdgIdSelectorTool std vector lt int gt pdgIds Removes input jets with given PDG IDs Useful when the input jets are just single particles from a Monte Carlo where leptons neutrinos etc are included The input file must have included PDG IDs JetMomentSelectorTool lt T gt std string momentName T min T max Finds the given jet moment calculated by another tool and requires it be within min max T can be any type supporting less than comparison 5 3 Transformers FASTJET 3 0 provides a common base class for jet manipulation fastjet Transformer Transformers can remove particles e g filtering re arrange substructure or tag reject jets To add a given transformer to an analysis use the TransformerTool Trimmed SJ JetAnalysis some jet finder trimmer fj Filter 0 35 fj SelectorPtFractionMin 0 03 Trimmed add_tool SJ FastJet TransformerTool TrimmerTool trimmer In C code any class deriving from fastjet Transformer is accept able in Python a ROOT dictionary must be generated
18. d system should allow natively building on Windows not Cyg win but this will likely require Windows builds for SPARTYJET s dependencies CMake can generate project files for your IDE of choice e g to build an Xcode project just do cmake G Xcode 4 JetBuilder JetBuilder is the job manager for SPARTYJET JetBuilder takes the input from an InputMaker see Section 6 and passes it through a set of JetAnalyses A JetAnalysis is made up of a sequence of JetTools The final list of jets and associated moments is passed to an NtupleMaker which prepares the output This is shown schematically in Fig 4 1 Input Functions Example examples_py inputExample py Input is passed to JetBuilder via builder configure_input input savelnput True where input can be any class deriving from InputMaker See Section 6 for examples The saveInput flag true by default determines whether to save the input particles in the output file Saving input particles is needed for most event displays but not for plotting run variables jet mass moments etc JetBuilder job manager input tools common to all JetAnalyses JetTool gt JetTool gt JetTool JetAnalysis JetAnalysis JetTool JetTool JetTool JetTool y JetTool JetTool y JetTool Figure 1 The structure of a SpartyJet analysis A JetBuilder gets input from a file using an InputMaker passes the input through
19. efinition including a plugin algorithm see FJExample py for examples By default a FastJetFinder finds inclusive jets with pr gt 5 GeV This can be mod ified via set_ptmin double set_dcut double and set _njets int The last two correspond to exclusive jet finding note that dcut has di mension GeV Setting any of these overrides the others FastJetRecluster Similar to FastJetFinder but uses a given jet algorithm to recluster the constituents of each jet in an event Has two constructors with the same arguments as Fast JetFinder The full set of default algorithms from FASTJET is available To use the in cluded but optional plugin algorithms uncomment the relevant lines in External ExternalLinkDef hpp and recompile SPARTYJET Two additional plugin algorithms are available in the ExternalTools direc tory 11 NjettinessPlugin Finds jets by minimizing the N jettiness measure 5 6 over the event with a fixed number N of axes QjetsPlugin Implements the Qjets algorithm of 7 5 2 Selectors These tools allow the user to remove some Jets from an input output JetCollec tion Most selectors can now be formed with the standard FASTJET Selectors via the SelectorTool class selector fj SelectorPtMin 200 0 fj SelectorNHardest 2 See the FASTJET manual or fast jet install include fastjet Selector hh for the full set of available selectors The compound assignment operators amp and are supported
20. eful to save space or if only event shape tools are used In fact JetBuilder has a method add eventshape analysis analysis that is simply an alias to add_analysis analysis False True A text file output option tells JetBuilder to produce an easily readable text file that contains a list of all jets found from all algorithms for all events To turn on the text file output you must call builder add_text_output and pass it the filename you want to create For example builder add_text_output data output text_output dat The main output of SPARTYJET is a ROOT file holding input particles jet momenta and jet and event moments The format of this file as well as some additional JetBuilder options controlling it are described in Sec 4 4 Minimum Bias Overlay Example examples_py overlayExample py JetBuilder allows the user to add minimum bias MB events to the signal events to study the effects of pileup To enable MB events one must 1 Create another input object MBinput SJ StdTextInput data MB_Clusters dat 2 Tell JetBuilder to add n MB events to each signal event builder add_minbias_events n MBinput poisson False JetBuilder will start at the beginning of the MB data file and read the first n events for the first data event then the second n events for the second data event so on When the end of the MB file is found it will simply continue from the beginning If the third optional argument is
21. epMCInput Sample data Zprime_ttbar hepmc This form of input reads HepMC version 2 format ASCII files This class reads in the four vectors and PDG IDs of the particles denoted with a status code of 1 not decayed final state 6 6 Pythialnput This form of input generates and reads events directly from PYTHIA without ever having to write them to a file This requires ROOT s PYTHIA interface versions 6 and 8 will both work See examples_py pythiaExample py for an example of using PYTHIA in this way 6 7 FourVecInput A FourVecInput takes four vectors from some other code the input class is templated on a Reader class that must provide a simple interface for retriev ing four vectors See 10 FourVecInput hh for a complete specification and examples_C FourVecExample cc for an example This does not currently work in Python since you would have to generate a dictionary for FourVecInput lt YourReaderClass gt 18 6 8 Input Options Multiple input files The MultiInput class can be used to string a set of input files together See examples_py mergedInputExample py for an example For ROOT files the current implementation opens all input files before beginning which may be inefficient Other files are opened sequentially Rejecting bad input The InputMaker can be set to remove four vectors with negative energy and non physical momenta by using the following function input reject_bad_input False The current default
22. ific analysis via builder builder add_jetTool tool AnalysisName Tools can be added to the front of the sequence with ana ysis add_tool_front tool or builder add_jetTool_front tool Analyses are passed to the JetBuilder as pointers so tools can be added to them at any time before calling JetBuilder process_events A single sequence of JetTools is run on the input particles before they are passed to each JetAnalysis This sequence starts empty to add to it use builder add_jetTool_input tool This is useful for initial tools like y cuts or detector simulation that are common to all algorithms 4 3 Output options SPARTYJET by default retains information about each jet s constituents JetBuilder add_analysis and JetBuilder add_default_analysis each take a second bool argument that determines whether to save constituent information for each jet builder add_analysis analysis withIndex True builder add_default_analysis tool withIndex True The default is True For this to be useful in the output the input should be set up to store input particles in the output file as well The full recombination history is stored in memory but storage to disk has not yet been implemented We hope to have this available in a future release A third option can be passed to JetBuilder add_analysis which if True tells the builder to only save jet and event moments not jet variables like n pr etc This can be us
23. nce before jet finding and once afterward On first run the tool finds and stores all input par ticles with negative energy For each such particle it inverts the energy to be positive On second run the JetNegEnergyTool loops over jets and for each constituent that initially had a negative energy it corrects the jet energy by subtracting twice the constituent s positive energy The JetBuilder method do_correct_neg_ energy true inserts this pair of tools before and after all jet finders added with add_default_analysis tool by default this is not done EConversionTool This tool simply converts the units of all the jets between MeV and GeV The user can convert to arbitrary units as well HardProcessMatchTool Assuming the input file includes information about the hard scattering this is true of HepMC files e g finds the closest hard parton for each jet and stores the AR distance as a jet moment AngularCorrelationTool Measures the angular correlation functions de scribed in 21 storing R and Mp for each peak found up to three as jet moments QjetsTool Runs the Qjets plugin algorithm repeatedly on each jet storing the average pruned jet mass and its volatility as described in 7 WTaggerToo1 This tool wraps the W tagging method of 22 which includes a large number of substructure and mass cuts The cuts are taken from data files in external wtag 1 00 data So far there is no way to re train the cuts from
24. nd W J Waalewijn N Jettiness An inclusive event shape to veto jets Phys Rev Lett 105 2010 092002 arXiv 1004 2489 hep ph J Thaler and K Van Tilburg Maximizing boosted top identification by minimizing N subjettiness larXiv 1108 2701 hep ph S D Ellis A Hornig D Krohn T S Roy and M D Schwartz Qjets A Non Deterministic Approach to Tree Based Jet Substructure arXiv 1201 1914 hep ph J M Butterworth A R Davison M Rubin and G P Salam Jet substructure as a new Higgs search channel at the LHC Phys Rev Lett 100 2008 242001 arXiv 0802 2470 hep ph J H Kim Rest frame subjet algorithm with SISCone jet for fully hadronic decaying Higgs search Phys Rev D83 2011 011502 arXiv 1011 1493 hep ph D E Kaplan K Rehermann M D Schwartz and B Tweedie Top tagging A method for identifying boosted hadronically decaying top quarks Phys Rev Lett 101 2008 142001 hep ph 23 11 12 13 14 15 16 17 18 19 20 21 22 S D Ellis C K Vermilion and J R Walsh Techniques for improved heavy particle searches with jet substructure Phys Rev D80 2009 051501 arXiv 0903 5081 hep ph S D Ellis C K Vermilion and J R Walsh Recombination algorithms and jet substructure Pruning as a tool for heavy particle searches Rev D81 2010 094023 arXiv 0912 0033 hep ph
25. placed by checked jets Separate multiple variables with e Expression Ex _mass _tau3 _tau2 etc Cuts Ex _pt gt 100 amp amp _pt lt 200 Legend entries for each curve Ex tthant dijet Draw resef I Normalize Logx 7 Logy I Logz M No Title T Same Pad Figure 2 A screenshot of the SPARTYJET graphical interface 21 Pruned Anti k Filtered Number of jets a 2 mass Poy S OS S SSST _mass gt 0 amp amp _mass lt 100 Pruned Anti k_ T Filtered EE Figure 3 An example canvas produced by the run plot option above with the options that produced it below 22 Contact information SPARTYJET website http projects hepforge org spartyjet Any questions comments suggestions email Pierre Antoine Delsart delsart in2p3 fr Joey Huston huston pa msu edu Brian Martin marti347 msu edu Chris Vermilion verm uw edu References 1 8 9 10 M Cacciari and G P Salam Dispelling the N3 myth for the k jet finder Phys Lett B641 2006 57 61 M Cacciari G P Salam and G Soyez http fastjet fr R Brun and F Rademakers ROOT An object oriented data analysis framework Nucl Instrum Meth A389 1997 81 86 M Cacciari G P Salam and G Soyez FastJet user manual arXiv 1111 6097 hep ph I W Stewart F J Tackmann a
26. s to process_events 1 N builder process_one_event N 5 JetTools JetTools are blocks of code that act on a JetCollection for every event They generally perform one or more of the following functions e Find jets e Add or remove jets from the list e Modify the jets themselves e Add information about each jet as a JetMoment e Add information about each event as an EventMoment Jet tools can be added either before or after the primary jet finder e g the ky algorithm in the JetAnalysis This section describes the set of JetTools shipped with SPARTYJET The relevant definitions can be found in JetTools core SPARTYJET tools FastJetTools wrappers around FASTJET tools and ExternalTools FASTJET based tools provided by third parties SPARTYJET and FASTJET have evolved alongside each other and many fea tures formerly implemented natively in SPARTYJET are now outsourced to FAST JET algorithms or tools We have endeavored to keep pace but realize there is still some duplication especially with the suite of tools available in FASTJET 3 0 10 Where available FASTJET based tools are the preferred means of performing jet finding fastjet ClusterSequence selection fast jet Selector manip ulation fastjet Transformer and measurement fast jet Function0fPseudoJet The improved wrapping of FASTJET code in SPARTYJET 4 0 should enable es sentially any FASTJET tool to be used within SPARTYJET We expect that fu
27. t import e Create a JetBuilder object to manage SPARTYJET analyses The argu ment sets the output message level options are DEBUG INFO WARNING ERROR Log messages throughout the code are tagged with a message level messages with level lower than the current output level are sup pressed Note that the SpartyJet namespace is aliased as SJ builder SJ JetBuilder SJ INFO e Create an input object with the name of the file containing the events using the getInputMaker helper function This function guesses the type of input file based on the file extension Many types of input are available see Section 6 input getInputMaker data J1_Clusters dat builder configure_input input e Define the jet analyses that you want to run Most analyses begin with a jet algorithm implemented in FASTJET via the FastJetFinder tool See Section for 5 1 for more options Note that the fast jet namespace is aliased as fj name Antikt4 alg fj antikt_algorithm R 0 4 antikt4Finder SJ FastJet FastJetFinder name alg R analysis SJ JetAnalysis antikt4Finder e Pass analysis to your JetBuilder A sequence of jet tools defines a jet analysis A jet finder is one example of a JetTool see Section 5 for many more builder add_analysis analysis e Insert another tool in the chain in this case making a measurement of jets angular moments in y and These will also be stored in the output ROOT file add _je
28. tToo1 can take a second argument the name of an algorithm to add the tool to otherwise the tool is added to all algorithms Tools can also be added directly to analyses via JetAnalysis add_tool builder add_jetTool SJ EtaPhiMomentTool e Configure optional simple text output for quick visual check of results builder add_text_output data output text_simple dat e Configure the Ntuple output by specifying the name of the tree and the ROOT file you want the data to be stored in This output can be ma nipulated via your own ROOT scripts or be viewed with the SPARTYJET GUI builder configure_output SpartyJet_Tree data output simple root e Give the command to run the algorithms on the first 10 events builder process_events 10 Running the script will process the first 10 events on the file specified in the input object and produce the root file specified in configure_output To view the output with the GUI run sparty data output simple root spartyjet bin must be in your PATH This is meant as a basic introduction and there are many more functions than listed here See the other examples for more 3 Installation 3 1 Requirements SPARTYJET should build and run on any Unix like operating system including Mac OS X A Cygwin build is presumably possible but not tested The standard build system is via Makefiles there is also a CMake build system which requires CMake SPARTYJET uses ROO
29. thon interface to most FASTJET features a powerful framework for building up modular analyses extensive input file handling capabilities and a graphical browser for viewing analysis output and creating new on the fly analyses Many of these capabilities rely on a ROOT based backend 3 Beyond finding jets many jet tools in SPARTYJET per form measurement of jet or event variables referred to here as jet or event moments These moments are available to subsequent tools and stored in the final output SPARTYJET can be downloaded from HepForge at Sec 2 walks through a simple example Sec 3 gives instruction on installa tion Sec 4 describes the overall structure of a SPARTYJET run Sec 5 describes and enumerates the various jet tools available in SPARTYJET Secs 6 and 7 de scribe SPARTYJET s input and output facilities Finally Sec 8 describes the capabilities of SPARTYJET s graphical interface 2 A simple example The simplest way to get a feel for how SPARTYJET works is to consider an exam ple in this section we walk through the script examples_py simpleExample py This script runs the anti kr algorithm on the first 10 events listed in data J1_Clusters dat makes a simple measurement on the found jets and stores the results e Load the libraries that are needed for the algorithms that you are run ning you need to source setup sh in the main directory first to set up environment variables from spartyje
30. ture The FASTJET native transformers are described further in the FASTJET doc umentation Examples of using many of these transformers can be found in examples_py FJToolExample py and examples_py Boost2011 py 5 4 Jet and event moment tools These tools calculate moments for each jet or event which can be any type that ROOT knows how to store most commonly doubles or ints The generic JetMomentTool and EventMomentTool calculate and store any user implemented JetMoment lt T gt or EventMoment lt T gt object See JetTools JetMomentTool hh for some specific examples and FJToolExample py for moment tools in action The FASTJET 3 base class Function0fPseudoJet lt T gt provides a common in terface for jet measurements This is wrapped in SPARTYJET by the PseudoJetMomentToo1 lt T gt class The template argument T gives the type of the function output An example of using a Function0OfPseudoJet measurement nsub3 fj Nsubjettiness 3 Njettiness onepass_kt_axes 1 0 1 0 Antikt10 add_tool SJ FastJet PseudoJetMomentTool double nsub3 tau3 13 Most jet and event moments in SPARTYJET are of type Double32_t This is a ROOT defined type that behaves like a double in memory but is stored as float we feel this is a reasonable compromise between precision mid calculation and saving storage space In the Python package ROOT Double32_t is imported as simply double as in the above example The following Function0fPseudoJets are available all
31. ust and other event shapes libs libSpartyDisplay so SPARTYJET GUI libs libExternalTools so A set of third party jet tools with wrappers 3 3 Running Working examples of how to use SPARTYJET can be found in the following directories spartyjet examples_py Python scripts recommended spartyjet examples_C Compiled programs in C The Python interface to SPARTYJET is strongly preferred and C ac cess may be deprecated in a future release To use the Python scripts some environment variables needs to be set which can be accomplished via source setup sh in the spartyjet directory This exports the relevant paths to your LD_LIBRARY_PATH and sets the environment variable SPARTYJETDIR which allows the SPARTYJET Python modules and libraries to be accessible from any directory The relevant lines of setup sh could also be copied into your shell s rc file e g bashrc You will also need ROOTSYS 1ib in your PYTHONPATH This is necessary to use PyROOT 3 4 CMake build SPARTYJET now includes a build system If you have CMake installed you can build SPARTYJET by creating a build directory e g spartyjet build and running cmake make If you are using the built in FASTJET distribution you need to run cmake make fastjet cmake make To set environment variables correctly you may need to run source setup sh in the main directory before running SPARTYJET programs In a future release the CMake buil
32. w the jet variables but note that not all moments are stored for all analyses Cuts can be added using TCut syntax e g AntiKt10_mass gt 150 amp amp AntiK10_mass lt 200 Finally legend labels for each algorithm can be given the syntax is ROOT TLatex text e g phi_ 0 produces dy Several drawing options are provided below the Draw button Finer control can be gained by opening the ROOT histogram editor in the output canvas Elle Edit View Options Tools Help pum ue XI Spartyjet Analysis Tool m canvas_group 13 gE num cols num rows Besef Clead Reset Line Styled JetCollections from data output tops500 root Jets M Prunedz0 M Antikt MO HEP TU Trimmed M CA T JH50 O Prunedso M KT I Filtered 7 CMS Event by Event plots Previous Even 0 Next Even M Lego plot 20 view I Snowmass potential I Parameter space F Event dump Draw On the fly algorithm setup JohnsHapkins a 1 0 200 0 for ors R pTmin deltap deltar data outputtops500 root Jets z JohnsHopkins Unique label for analysis Create F JohnsHopkins F JH20 Run plots Choose a variable to be drawn C eT pti etal phi l mass Jet moments found not all analyses have all moments Dar I R2 I Ra F TAG I cosThetaH dipolarity I mi Tm C m3 C mw I nPeaks I taut I tauz I tau3 P zcell I zeuti F zcu M zcut3 M zcu And or provide the expression s to be draw below use as a wildcard ex _pl to be re
Download Pdf Manuals
Related Search
Related Contents
Dewrance Globe Valves, Cast High Pressure Style A École Normale Catholique du Brabant Wallon Handbuch - HiFi Copyright © All rights reserved.
Failed to retrieve file