ATLAS Offline Software
JetReclusteringAlgo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifdef ROOTCORE
6 #ifndef JetReclustering_JetReclusteringAlgo_H
7 #define JetReclustering_JetReclusteringAlgo_H
8 
9 #include <EventLoop/Algorithm.h>
10 
11 #include <xAODRootAccess/Init.h>
12 #include <xAODRootAccess/TEvent.h>
13 #include <xAODRootAccess/TStore.h>
14 
15 // reclustering
16 #include <AsgTools/AnaToolHandle.h>
18 
19 class JetReclusteringAlgo : public EL::Algorithm
20 {
21 public:
22  std::string m_name = "GiordonStark",
23  m_inputJetContainer,
24  m_outputJetContainer,
25  m_rc_alg,
26  m_outputXAODName;
27  float m_radius = 1.0;
28  float m_ptMin_input = 25.0; // GeV
29  float m_ptMin_rc = 50.0; // GeV
30  float m_ptFrac = 0.05;
31  float m_subjet_radius = 0.2;
32  float m_varR_minR = -1.0;
33  float m_varR_mass = -1.0; // GeV
34  bool m_doArea = false;
35  std::string m_areaAttributes = "ActiveArea ActiveArea4vec";
36  bool m_debug = false;
37 
38 private:
39  /* For counting and statistics */
40  xAOD::TEvent *m_event;
41  xAOD::TStore *m_store;
42 
43  asg::AnaToolHandle<IJetExecuteTool> m_jetReclusteringTool;
44 
45 public:
46  // this is a standard constructor
47  JetReclusteringAlgo ();
48 
49  // these are the functions inherited from Algorithm
51  virtual EL::StatusCode fileExecute ();
52  virtual EL::StatusCode histInitialize ();
53  virtual EL::StatusCode changeInput (bool firstFile);
54  virtual EL::StatusCode initialize ();
55  virtual EL::StatusCode execute ();
56  virtual EL::StatusCode postExecute ();
57  virtual EL::StatusCode finalize ();
58  virtual EL::StatusCode histFinalize ();
59 
60  // this is needed to distribute the algorithm to the workers
61  ClassDef(JetReclusteringAlgo, 1);
62 };
63 
64 #endif
65 #endif // ROOTCORE
EL::Algorithm::fileExecute
virtual StatusCode fileExecute()
effects: do all the processing that needs to be done once per file
asg::AnaToolHandle< IJetExecuteTool >
EL::Algorithm::execute
virtual StatusCode execute()
effects: process the next event guarantee: basic failures: algorithm dependent
EL::Algorithm::postExecute
virtual StatusCode postExecute()
effects: do the post-processing for the event guarantee: basic failures: algorithm dependent rational...
EL::Algorithm::changeInput
virtual StatusCode changeInput(bool firstFile)
effects: do all changes to work with a new input file, e.g.
EL::Algorithm::finalize
virtual StatusCode finalize()
effects: do everything that needs to be done after completing work on this worker guarantee: basic fa...
IJetExecuteTool.h
EL::Algorithm
Definition: Algorithm.h:22
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Algorithm.h
TEvent.h
EL::Algorithm::initialize
virtual StatusCode initialize()
effects: do everything that needs to be done before running the algorithm, e.g.
Init.h
AnaToolHandle.h
xAOD::TStore
A relatively simple transient store for objects created in analysis.
Definition: TStore.h:44
EL::Algorithm::histInitialize
virtual StatusCode histInitialize()
effects: this is a pre-initialization routine that is called before changeInput is called.
EL::Algorithm::ClassDef
ClassDef(Algorithm, 1)
EL::Algorithm::histFinalize
virtual StatusCode histFinalize()
effects: this is a post-initialization routine that is called after finalize has been called.
EL::Job
Definition: Job.h:51
test_interactive_athena.job
job
Definition: test_interactive_athena.py:6
EL::Algorithm::setupJob
virtual StatusCode setupJob(Job &job)
effects: give the algorithm a chance to intialize the job with anything this algorithm needs.
TStore.h
xAOD::TEvent
Tool for accessing xAOD files outside of Athena.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:81