ATLAS Offline Software
FastJetInterfaceTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "fastjet/ClusterSequenceArea.hh"
7 
8 
9 //#include "EventInfo/EventID.h"
10 #include "CxxUtils/crc64.h"
11 
13 
14 using namespace FastJetInterface;
15 
17 // Constants //
19 
20 // process control
21 const std::string FastJetInterfaceTool::m_invalidKeyReference = "INVALID_KEY";
22 const unsigned int FastJetInterfaceTool::m_failedExecCtrMax = 10;
23 
25 // Constant Accessors //
27 
28 // jet algorithm dictionary
30 {
32  static const FastJetInterface::algomap_t knownAlgorithms = {
33  // kt-style algorithms
34  {"default", fastjet::antikt_algorithm},
35  {"kt", fastjet::kt_algorithm},
36  {"anti-kt", fastjet::antikt_algorithm},
37  {"cambridge", fastjet::cambridge_algorithm},
38  {"genkt", fastjet::genkt_algorithm},
39  {"passive cambridge", fastjet::cambridge_for_passive_algorithm},
40  {"passive genkt", fastjet::genkt_for_passive_algorithm},
41  // add also ATLAS kt-style
42  {"Kt", fastjet::kt_algorithm},
43  {"AntiKt", fastjet::antikt_algorithm},
45  // Plugin algorithms
46  {"CMSCone", fastjet::plugin_algorithm},
47  {"SISCone", fastjet::plugin_algorithm},
48  };
49  return knownAlgorithms;
50 }
51 
52 // jet cluster strategies dictionary
54 {
56  static const FastJetInterface::strategymap_t knownStrategies = {
57  {"default", fastjet::Best},
58  {"Best", fastjet::Best},
59  {"N2MinHeapTiled", fastjet::N2MinHeapTiled},
60  {"N2Tiled", fastjet::N2Tiled},
61  {"N2PoorTiled", fastjet::N2PoorTiled},
62  {"N2Plain", fastjet::N2Plain},
63  {"N3Dumb", fastjet::N3Dumb},
64  {"NlnN", fastjet::NlnN},
65  {"NlnN3pi", fastjet::NlnN3pi},
66  {"NlnN4pi", fastjet::NlnN4pi},
67  {"NlnNCam4pi", fastjet::NlnNCam4pi},
68  {"NlnNCam2pi2R", fastjet::NlnNCam2pi2R},
69  {"NlnNCam", fastjet::NlnNCam},
70  {"plugin_strategy", fastjet::plugin_strategy},
71  };
72  return knownStrategies;
73 }
74 
75 // recombination schemes dictionary
77 {
79  static const FastJetInterface::schememap_t knownRecombinationSchemes = {
80  {"default", fastjet::E_scheme},
81  {"E", fastjet::E_scheme},
82  {"pt", fastjet::pt_scheme},
83  {"pt2", fastjet::pt2_scheme},
84  {"Et", fastjet::Et_scheme},
85  {"Et2", fastjet::Et2_scheme},
86  {"BIpt", fastjet::BIpt_scheme},
87  {"BIpt2", fastjet::BIpt2_scheme},
88  };
89  return knownRecombinationSchemes;
90 }
91 
92 // SIS Cone split merge scale dictionary
94 {
95 #ifndef XAOD_STANDALONE
96 
97  static const FastJetInterface::splitMergeScaleMap_t knownSplitMergeScales = {
98  {"default", fastjet::SISConePlugin::SM_pttilde},
99  {"pttilde", fastjet::SISConePlugin::SM_pttilde},
100  {"PtTilde", fastjet::SISConePlugin::SM_pttilde},
101  {"Pt", fastjet::SISConePlugin::SM_pt},
102  {"Et", fastjet::SISConePlugin::SM_Et},
103  {"mt", fastjet::SISConePlugin::SM_mt},
104  };
105 #else
106  static const FastJetInterface::splitMergeScaleMap_t knownSplitMergeScales;
107 #endif
108  return knownSplitMergeScales;
109 }
110 
111 // jet area dictionary
113 {
115  static const FastJetInterface::areamap_t knownAreas = {
116  {"default", fastjet::voronoi_area},
117  {"ActiveArea", fastjet::active_area},
118  {"ActiveAreaExplicitGhost", fastjet::active_area_explicit_ghosts},
119  {"PassiveArea", fastjet::passive_area},
120  {"1GhostPassiveArea", fastjet::one_ghost_passive_area},
121  {"VoronoiArea", fastjet::voronoi_area},
122  };
123  return knownAreas;
124 }
125 
126 
128 // Tool Constructors & Destructor //
130 
132  : asg::AsgTool(n)
133  // jet clustering and jet definition --- ////////// jet clustering
134  , m_clusterSequenceType("ClusterSequence") // <--{ not used right now!
135  , m_jetAlgorithmType("anti-kt") //
136  , m_clusterStrategyType("Best") //
137  , m_recombinationSchemeType("E") //
138  , m_CMS_seedThreshold(15.) //
139  , m_SIS_overlapThreshold(0.75) //
140  , m_SIS_nPass(0) //
141  , m_SIS_protojetPtMin(0.0) //
142  , m_SIS_doCaching(false) //
143  , m_SIS_splitMergeScale_STRING("PtTilde") //
144  , m_SIS_splitMergeStopScale(0.0) //
145  , m_radius(0.4) //
146  , m_inclusive(true) //
147  , m_exclusiveDcut(0.5) //
148  , m_exclusiveNjets(3) //
149  , m_pTmin(0.) //
150  // jet areas --------------------------- ////////// jet areas
151  , m_doJetArea(false) //
152  , m_jetAreaDefinitionType("VoronoiArea") //
153  // Voronoi area specs // -- Voronoi
154  , m_voronoiEffectiveRfact(1.0) //
155  // ghosted area specs // -- ghosted -- //
156  , m_ghostedMaxRap(fastjet::gas::def_ghost_maxrap) //
157  , m_ghostedMinRap(-m_ghostedMaxRap) //
158  , m_ghostedRepeat(fastjet::gas::def_repeat) //
159  , m_ghostedArea(fastjet::gas::def_ghost_area) //
160  , m_ghostedGridScatter(fastjet::gas::def_grid_scatter) //
161  , m_ghostedKtScatter(fastjet::gas::def_pt_scatter) //
162  , m_ghostedMeanKt(fastjet::gas::def_mean_ghost_pt) //
163  // process control ----------------------///////////////////
164  , m_failedExecCtr(0)
165  // presets ////////// private data presets
166  , m_jetDefinition((fastjet::JetDefinition*)nullptr)
167  , m_clusterSequence((fastjet::ClusterSequence*)nullptr)
168  , m_areaDefinition((fastjet::AreaDefinition*)nullptr)
169  , m_baseRNDSeed (0)
170  , m_userRNDSeed (0)
171 {
172  //declareInterface<IFastJetInterfaceTool>(this);
173  // setup choices
174  // declareProperty("ClusterSequence",m_clusterSequenceType);
175  declareProperty("Algorithm",m_jetAlgorithmType);
176  // parameters for kt-style jets
179  // parameters for CMS cone jets
180  declareProperty("CMS_SeedThreshold",m_CMS_seedThreshold);
181  // parameters for SIS cone jets
182  declareProperty("SIS_OverlapThreshold",m_SIS_overlapThreshold);
183  declareProperty("SIS_NumPassMax",m_SIS_nPass);
184  declareProperty("SIS_ProtojetPtMin",m_SIS_protojetPtMin);
185  declareProperty("SIS_DoCaching",m_SIS_doCaching);
186  declareProperty("SIS_SplitMergeScale",m_SIS_splitMergeScale_STRING);
187  declareProperty("SIS_SplitMergeStopScale",m_SIS_splitMergeStopScale);
188  // parameters for jet finders/jet definition
189  declareProperty("Radius",m_radius);
190  declareProperty("Inclusive",m_inclusive);
191  declareProperty("InclusivePtMin",m_pTmin);
192  declareProperty("ExclusiveDcut",m_exclusiveDcut);
193  declareProperty("ExclusiveNjets",m_exclusiveNjets);
194  // parameters for areas
195  declareProperty("CalculateJetArea",m_doJetArea);
196  declareProperty("JetAreaMethod",m_jetAreaDefinitionType);
197  declareProperty("VoronoiEffectiveRfact",m_voronoiEffectiveRfact);
198  declareProperty("GhostMaxRapidity",m_ghostedMaxRap);
199  declareProperty("GhostMinRapidity",m_ghostedMinRap);
200  declareProperty("GhostRepeats",m_ghostedRepeat);
201  declareProperty("GhostAreaSize",m_ghostedArea);
202  declareProperty("GhostGridScatter",m_ghostedGridScatter);
203  declareProperty("GhostKtScatter",m_ghostedKtScatter);
204  declareProperty("GhostMeanKt",m_ghostedMeanKt);
205 
206  declareProperty("UserRNDSeed", m_userRNDSeed = 0, "Added to the base RND seed for active areas. USE WITH CARE !");
207 
208  // default processor
211  // other presets (will be set/overwritten in initialize)
213  m_strategy = fastjet::Best;
214  m_areaType = fastjet::voronoi_area;
215  m_recombinationScheme = fastjet::E_scheme;
216 #ifndef XAOD_STANDALONE
217  m_SIS_splitMergeScale = fastjet::SISConePlugin::SM_pttilde;
218 #endif
219 
220 }
221 
223 {
224  if(m_jetDefinition) delete m_jetDefinition;
227 
228 }
229 
231 // Tool Initialization //
233 
235 {
236  ATH_MSG_DEBUG( " initialize " );
237 
238  // check requested jet algorithm
239  ATH_MSG_INFO("Algorithm type \042" << m_jetAlgorithmType << "\042");
241  {
242  msg(MSG::ERROR) << "FastJet configuration error: "
243  << "Unknown jet algorithm \042"
244  << m_jetAlgorithmType << "\042 requested"
245  << endmsg;
246  return StatusCode::FAILURE;
247  }
248  // check requested recombination scheme
249  ATH_MSG_INFO("Recombination type \042" << m_recombinationSchemeType << "\042");
251  {
252  msg(MSG::ERROR) << "FastJet configuration error: "
253  << "Unknown recombination scheme \042"
254  << m_recombinationScheme << "\042 requested"
255  << endmsg;
256  return StatusCode::FAILURE;
257  }
258  // check requested strategy
259  ATH_MSG_INFO("Cluster strategy type \042" << m_clusterStrategyType << "\042");
261  {
262  msg(MSG::ERROR) << "FastJet configuration error: "
263  << "Unknown clustering strategy \042"
264  << m_clusterStrategyType << "\042 requested" << endmsg;
265  return StatusCode::FAILURE;
266  }
267 
268  // determine the type of jet algorithm we have (kt-style vs plugins)
269  enum jetAlgTypeEnum { unknown_type, Kt_type, CMS_type, SIS_type } jetAlgType = Kt_type;
271  {
272  if (!m_jetAlgorithmType.compare("CMSCone"))
273  jetAlgType = CMS_type;
274  else if(!m_jetAlgorithmType.compare("SISCone"))
275  jetAlgType = SIS_type;
276  else
277  jetAlgType = unknown_type;
278  }
279  if (jetAlgType == unknown_type)
280  {
281  msg(MSG::ERROR) << "FastJet configuration error: "
282  << "Unknown jet algorithm plugin \042"
283  << m_jetAlgorithmType << "\042 requested" << endmsg;
284  return StatusCode::FAILURE;
285  }
286 
287 #ifndef XAOD_STANDALONE
288 
289  // define jets depending on the jet type
290  if (jetAlgType == CMS_type)
291  m_jetDefinition = new fastjet::JetDefinition(new fastjet::CMSIterativeConePlugin(m_radius,m_CMS_seedThreshold));
292  else if (jetAlgType == SIS_type)
293  m_jetDefinition = new fastjet::JetDefinition(new fastjet::SISConePlugin(m_radius,
295  m_SIS_nPass,
300  ));
301  else
302  m_jetDefinition = new fastjet::JetDefinition(m_jetAlgorithm,
303  m_radius,
305  m_strategy);
306 #else
307  // no athena error on SIS or CMS
308  if ( (jetAlgType == CMS_type) || (jetAlgType == SIS_type)){
309  ATH_MSG_ERROR("CMS and SIScone plugin not supporeted outside athena yet");
310  return StatusCode::FAILURE;
311  }else
312  m_jetDefinition = new fastjet::JetDefinition(m_jetAlgorithm,
313  m_radius,
315  m_strategy);
316 #endif
317 
318 
319  // without area calculation
320  if ( !m_doJetArea )
321  {
323  }
324  // with area calculation
325  else
326  {
327  ATH_MSG_INFO("Jet area type \042" << m_jetAreaDefinitionType << "\042");
328  if ( this->configJetAreas().isFailure() )
329  {
330  msg(MSG::ERROR) << "FastJet configuration error: "
331  << "Clustering with areas requested but area type"
332  << "\042" << m_jetAreaDefinitionType
333  << "\042 is not known" << endmsg;
334  return StatusCode::FAILURE;
335  }
337  }
338 
339  // configure inclusive/exclusive jet extractor
340  if ( m_inclusive )
341  {
343  } // inclusive jet finder
344  else
345  {
346  // Priority:
347  //
348  // if !inclusive:
349  // m_exclusiveDcut > 0 -> yes
350  // m_exclusiveDcut <= 0 -> m_exclusiveNjets >= 0 -> yes
351  // m_exclusiveNjets < 0 -> error
352  if ( m_exclusiveDcut > 0. )
353  {
355  }
356  else
357  {
358  if ( m_exclusiveNjets >= 0 )
359  {
361  }
362  else
363  {
364  msg(MSG::ERROR) << "Invalid configuration for exclusive "
365  << "jet finder, one of ExclusiveDcut("
366  << m_exclusiveDcut
367  << ") or ExclusiveNjets("
369  << ") properties should be >= 0."
370  << endmsg;
371  return StatusCode::FAILURE;
372  } // invalid configuration of exclusive jet finder
373  } // exclusive jet finder using Njet cut
374  } // exclusive jet finder using Dcut
375 
376  // print configuration
377  msg(MSG::INFO) << "JetAlgorithm ................ \042"
378  << m_jetAlgorithmType << "\042" << endmsg;
379  msg(MSG::INFO) << "Radius ...................... " << m_radius << endmsg;
380  if (jetAlgType == Kt_type)
381  {
382  msg(MSG::INFO) << "Recombination scheme ........ \042"
383  << m_recombinationSchemeType << "\042" << endmsg;
384  msg(MSG::INFO) << "Strategy .................... \042"
385  << m_clusterStrategyType << "\042" << endmsg;
386  }
387  else if (jetAlgType == CMS_type)
388  msg(MSG::INFO) << "CMS seed threshold .......... "
390  else if (jetAlgType == SIS_type)
391  {
392  msg(MSG::INFO) << "SIS overlap threshold ....... "
394  msg(MSG::INFO) << "SIS max num pass ............ "
395  << m_SIS_nPass << endmsg;
396  msg(MSG::INFO) << "SIS protojet Pt min ......... "
398  msg(MSG::INFO) << "SIS do caching .............. "
399  << (m_SIS_doCaching ? std::string("yes") : std::string("no")) << endmsg;
400  msg(MSG::INFO) << "SIS split/merge scale ....... \042"
401  << m_SIS_splitMergeScale_STRING << "\042" << endmsg;
402  msg(MSG::INFO) << "SIS split/merge stop scale .. "
404  }
405  if ( m_doJetArea )
406  {
407  msg(MSG::INFO) << "Calculate jet areas ......... yes" << endmsg;
408  msg(MSG::INFO) << "Area type ................... \042"
409  << m_jetAreaDefinitionType << "\042" << endmsg;
410  }
411 
412 
413 
414  return StatusCode::SUCCESS;
415 }
416 
418 // Tool Execution //
420 
422  fjetlist_t& outJets)
423 {
424  // clean up
425  ATH_MSG_DEBUG( " FastJetInterfaceTool::execute injet size = "<< inJets.size() );
426 
427  if ( m_clusterSequence != nullptr )
428  {
429  delete m_clusterSequence;
431  }
432 
433  if ( ((this->*m_processor)(inJets,outJets)).isFailure() )
434  {
435  ++m_failedExecCtr;
437  {
438  msg(MSG::WARNING) << "Cannot allocate new fastjet::ClusterSequence,"
439  << " no jets found (message "
440  << m_failedExecCtr << " of "
441  << m_failedExecCtrMax << ")" << endmsg;
442  }
443  else if ( m_failedExecCtr == m_failedExecCtrMax )
444  {
445  msg(MSG::WARNING) << "Cannot allocate new fastjet::ClusterSequence,"
446  << " no jets found (message "
447  << m_failedExecCtr << " of "
448  << m_failedExecCtrMax << ") [last message]"
449  << endmsg;
450  }
451  outJets.clear();
452  }
453  return StatusCode::SUCCESS;
454 }
455 
457 // Configuration Helpers //
459 
460 bool FastJetInterfaceTool::checkConfig(const std::string& key,
461  fastjet::JetAlgorithm& fjalg)
462 {
463  const algomap_t& map = this->getKnownAlgorithms();
464  return chkConfig(key,fjalg,map);
465 }
466 
467 bool FastJetInterfaceTool::checkConfig(const std::string& key,
468  fastjet::Strategy& fjstr)
469 {
470  const strategymap_t& map = this->getKnownStrategies();
471  return chkConfig(key,fjstr,map);
472 }
473 
474 bool FastJetInterfaceTool::checkConfig(const std::string& key,
475  fastjet::RecombinationScheme& fjrs)
476 {
477  const schememap_t& map = this->getKnownRecombinationSchemes();
478  return chkConfig(key,fjrs,map);
479 }
480 
481 #ifndef XAOD_STANDALONE
482 bool FastJetInterfaceTool::checkConfig(const std::string& key,
483  fastjet::SISConePlugin::SplitMergeScale& fjsms)
484 {
485  const splitMergeScaleMap_t& map = this->getKnownSplitMergeScales();
486  return chkConfig(key,fjsms,map);
487 }
488 #endif
489 
490 bool FastJetInterfaceTool::checkConfig(const std::string& key,
491  fastjet::AreaType& fjart)
492 {
493  const areamap_t& map = this->getKnownAreas();
494  return chkConfig(key,fjart,map);
495 }
496 
497 const std::string& FastJetInterfaceTool::configName(fastjet::JetAlgorithm fjalg)
498 {
499  const algomap_t& map = this->getKnownAlgorithms();
500  return cfgName(fjalg,map,m_invalidKeyReference);
501 }
502 
504 {
505  const strategymap_t& map = this->getKnownStrategies();
506  return cfgName(fjstr,map,m_invalidKeyReference);
507 }
508 
509 const std::string&
510 FastJetInterfaceTool::configName(fastjet::RecombinationScheme fjrs)
511 {
512  const schememap_t& map = this->getKnownRecombinationSchemes();
513  return cfgName(fjrs,map,m_invalidKeyReference);
514 }
515 
516 #ifndef XAOD_STANDALONE
517 const std::string&
518 FastJetInterfaceTool::configName(fastjet::SISConePlugin::SplitMergeScale fjsms)
519 {
520  const splitMergeScaleMap_t& map = this->getKnownSplitMergeScales();
521  return cfgName(fjsms,map,m_invalidKeyReference);
522 }
523 #endif
524 const std::string& FastJetInterfaceTool::configName(fastjet::AreaType fjart)
525 {
526  const areamap_t& map = this->getKnownAreas();
527  return cfgName(fjart,map,m_invalidKeyReference);
528 }
529 
531 // Processor Helpers //
533 
535  fjetlist_t& outJets)
536 {
537  ATH_MSG_DEBUG( " processing without area " );
539  ATH_MSG_DEBUG( " processed without area " );
540  return m_clusterSequence != nullptr
541  ? (this->*m_extractor)(outJets) : StatusCode::FAILURE;
542 }
543 
545  fjetlist_t& outJets)
546 {
547 
548  updateRandomSeeds(); // make sure rnd seeds depend on event & run numbers
550  new fastjet::ClusterSequenceArea(inJets,*m_jetDefinition,*m_areaDefinition);
551 
552  return m_clusterSequence != nullptr
553  ? (this->*m_extractor)(outJets) : StatusCode::FAILURE;
554 }
555 
557 {
558  outJets = m_clusterSequence->inclusive_jets(m_pTmin);
559  ATH_MSG_DEBUG( " extract inclusive outjets N= "<< outJets.size() );
560  return !outJets.empty() ? StatusCode::SUCCESS : StatusCode::FAILURE;
561 }
562 
564 {
565  outJets = m_clusterSequence->exclusive_jets(m_exclusiveNjets);
566  ATH_MSG_DEBUG( " extract exclusiveNjets outjets N= "<< outJets.size() );
567 
568  return !outJets.empty() ? StatusCode::SUCCESS : StatusCode::FAILURE;
569 }
570 
572 {
573  outJets = m_clusterSequence->exclusive_jets(m_exclusiveDcut);
574  ATH_MSG_DEBUG( " extract exclusiveDcut outjets N= "<< outJets.size() );
575  return ! outJets.empty() ? StatusCode::SUCCESS : StatusCode::FAILURE;
576 }
577 
579 { return m_clusterSequence; }
580 
582 { return m_clusterSequence; }
583 
584 const fastjet::JetDefinition* FastJetInterfaceTool::getJetDefinition() const
585 { return m_jetDefinition; }
586 
587 const fastjet::AreaDefinition* FastJetInterfaceTool::getAreaDefinition() const
588 { return m_areaDefinition; }
589 
591 { return m_jetAreaDefinitionType; }
592 
594 {
595  // check area type
596  const areamap_t& map = getKnownAreas();
597  m_areaType = (*(map.find("default"))).second;
599  { return StatusCode::FAILURE; }
600  // area definition according to type
601  switch ( m_areaType )
602  {
603  // Voronoi
604  case fastjet::voronoi_area:
606  new
607  fastjet::AreaDefinition(fastjet::VoronoiAreaSpec(m_voronoiEffectiveRfact));
608  break;
609  // Ghosted
610  case fastjet::active_area:
611  case fastjet::active_area_explicit_ghosts:
612  case fastjet::one_ghost_passive_area:
613  case fastjet::passive_area:
614  {
615  fastjet::GhostedAreaSpec Garea_spec(m_ghostedMinRap,
622 
623  // create a seed from the jet alg and the seed
624  m_baseRNDSeed = CxxUtils::crc64 ("FastJet");
628  // seed will be modified and reset in the Garea_spec for each event (see updateRandomSeeds() ).
629 
630  ATH_MSG_DEBUG(" Base seed = "<< m_baseRNDSeed<< " user seed ="<< m_userRNDSeed );
631 
632  m_areaDefinition = new fastjet::AreaDefinition(Garea_spec,
633  m_areaType);
634  break;
635  }
636  // others
637  default:
638  m_areaDefinition = new fastjet::AreaDefinition(m_areaType);
639  break;
640  } // switch through area options
641 
642  // configure processor
643  return StatusCode::SUCCESS;
644 }
645 
647  // update seeds. Call this function ONLY if using a ClusterSequenceArea
650 {
651 
652 
653  std::vector<int> seed;
654 
655  fastjet::GhostedAreaSpec & Garea_spec = m_areaDefinition->ghost_spec() ;
656  Garea_spec.get_random_status (seed);
657 
658  unsigned int evnum = 0;
659  unsigned int runnum = 0;
660 
661  const xAOD::EventInfo* ei = nullptr;
662  if (evtStore()->retrieve (ei,"EventInfo").isSuccess()){
663  evnum = ei->eventNumber();
664  runnum = ei->runNumber();
665  }
666 
667  // Use both event and run nunmber to reset the random seeds
669  crc = CxxUtils::crc64addint (crc, runnum);
670 
671  // Tacitly assuming that there are no consistency requirements
672  // on the RNG state (true for the current RNG that fastjet uses).
673  // Use fixed data sizes for crossplatform reproducibility.
674  for (size_t i = 0; i < seed.size(); i++) {
675  seed[i] = static_cast<int> (static_cast<uint32_t> (crc));
676  crc = (crc >> 32) ^ crc;
677  }
678 
679 
680  Garea_spec.set_random_status (seed);
681  seed.clear();
682  Garea_spec.get_random_status (seed);
683  ATH_MSG_DEBUG("area def "<< m_areaDefinition<< " ghost spec= "<< &Garea_spec << " crc= "<< crc<< " seed0="<< seed[0] << " seed1="<<seed[1]);
684 
685 }
FastJetInterfaceTool::m_processor
PROCESSOR m_processor
Pointer to processor.
Definition: FastJetInterfaceTool.h:418
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
FastJetInterfaceTool::m_invalidKeyReference
static const std::string m_invalidKeyReference
Reference for invalid fastjet tag.
Definition: FastJetInterfaceTool.h:372
FastJetInterfaceTool::getAreaDefinition
const fastjet::AreaDefinition * getAreaDefinition() const
Access fastjet AreaDefinition.
Definition: FastJetInterfaceTool.cxx:587
python.utils.AtlRunQueryDQUtils.runnum
runnum
Definition: AtlRunQueryDQUtils.py:214
FastJetInterfaceTool::m_jetDefinition
fastjet::JetDefinition * m_jetDefinition
Pointer to jet definition.
Definition: FastJetInterfaceTool.h:397
FastJetInterfaceTool::m_jetAreaDefinitionType
std::string m_jetAreaDefinitionType
fastjet property: jet area definition
Definition: FastJetInterfaceTool.h:262
FastJetInterfaceTool::m_pTmin
double m_pTmin
Inclusive jet finder property: pTmin cut.
Definition: FastJetInterfaceTool.h:257
FastJetInterfaceTool::initialize
virtual StatusCode initialize()
Initialize tool.
Definition: FastJetInterfaceTool.cxx:234
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
FastJetInterfaceTool::m_failedExecCtrMax
static const unsigned int m_failedExecCtrMax
Execution failure counter reporting cut-off.
Definition: FastJetInterfaceTool.h:377
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
FastJetInterface::areamap_t
std::map< std::string, fastjet::AreaType > areamap_t
Mapping keyword on fastjet area type tag.
Definition: FastJetInterfaceTool.h:48
FastJetInterfaceTool::m_CMS_seedThreshold
double m_CMS_seedThreshold
fastjet property for CMS Cone plugin: seed threshold
Definition: FastJetInterfaceTool.h:234
fastjet
Definition: FastJetLinkBase.h:22
xAOD::JetAlgorithmType::kt_algorithm
@ kt_algorithm
Definition: JetContainerInfo.h:31
FastJetInterfaceTool::m_jetAlgorithm
fastjet::JetAlgorithm m_jetAlgorithm
fastjet tag: jet algorithm
Definition: FastJetInterfaceTool.h:385
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
FastJetInterfaceTool::configName
const std::string & configName(fastjet::JetAlgorithm fjalg)
Get keyword for fastjet configuration.
Definition: FastJetInterfaceTool.cxx:497
FastJetInterfaceTool::checkConfig
bool checkConfig(const std::string &key, fastjet::JetAlgorithm &fjalg)
Check configuration keyword for jet algorithm.
Definition: FastJetInterfaceTool.cxx:460
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trig::MatchingStrategy::Strategy
Strategy
Definition: MatchingImplementation.h:26
FastJetInterfaceTool::f_processWithoutArea
StatusCode f_processWithoutArea(const FastJetInterface::fjetlist_t &inJets, FastJetInterface::fjetlist_t &outJets)
Processor implementation: cluster sequence without area calculation.
Definition: FastJetInterfaceTool.cxx:534
FastJetInterfaceTool::m_SIS_overlapThreshold
double m_SIS_overlapThreshold
fastjet property for SIS Cone plugin: overlap threshold
Definition: FastJetInterfaceTool.h:236
FastJetInterfaceTool::m_jetAlgorithmType
std::string m_jetAlgorithmType
fastjet property: jet algorithm
Definition: FastJetInterfaceTool.h:227
FastJetInterfaceTool::m_areaType
fastjet::AreaType m_areaType
fastjet tag: jet area type
Definition: FastJetInterfaceTool.h:389
asg
Definition: DataHandleTestTool.h:28
FastJetInterfaceTool::m_doJetArea
bool m_doJetArea
Tool property: flag controls if jet area is calculated.
Definition: FastJetInterfaceTool.h:260
FastJetInterface::cfgName
const std::string & cfgName(D tag, const M &map, const std::string &invalidKey)
General configuration keyword finder.
Definition: FastJetInterfaceTool.h:92
FastJetInterfaceTool::m_ghostedMinRap
double m_ghostedMinRap
fastjet property: ghost area rapidity limit (min)
Definition: FastJetInterfaceTool.h:268
FastJetInterfaceTool::m_strategy
fastjet::Strategy m_strategy
fastjet tag: jet clustering strategy
Definition: FastJetInterfaceTool.h:387
FastJetInterfaceTool::~FastJetInterfaceTool
virtual ~FastJetInterfaceTool()
Base class destructor.
Definition: FastJetInterfaceTool.cxx:222
FastJetInterfaceTool::configJetAreas
StatusCode configJetAreas()
Configures jet area calculation strategy.
Definition: FastJetInterfaceTool.cxx:593
FastJetInterface::splitMergeScaleMap_t
std::map< std::string, fastjet::SISConePlugin::SplitMergeScale > splitMergeScaleMap_t
Mapping keyword on fastjet SIS Cone split merge scale tag.
Definition: FastJetInterfaceTool.h:43
FastJetInterfaceTool::getKnownRecombinationSchemes
const FastJetInterface::schememap_t & getKnownRecombinationSchemes()
Get known recombination schemes.
Definition: FastJetInterfaceTool.cxx:76
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
FastJetInterfaceTool::m_ghostedKtScatter
double m_ghostedKtScatter
fastjet property: scatter of kT of ghosts
Definition: FastJetInterfaceTool.h:276
FastJetInterfaceTool::m_extractor
EXTRACTOR m_extractor
Pointer to extractor.
Definition: FastJetInterfaceTool.h:420
xAOD::JetAlgorithmType::cambridge_for_passive_algorithm
@ cambridge_for_passive_algorithm
Definition: JetContainerInfo.h:35
FastJetInterfaceTool::getKnownAreas
const FastJetInterface::areamap_t & getKnownAreas()
Get known area types.
Definition: FastJetInterfaceTool.cxx:112
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
xAOD::JetAlgorithmType::plugin_algorithm
@ plugin_algorithm
Definition: JetContainerInfo.h:39
xAOD::JetAlgorithmType::genkt_algorithm
@ genkt_algorithm
Definition: JetContainerInfo.h:34
FastJetInterfaceTool::m_ghostedMeanKt
double m_ghostedMeanKt
fastjet property: average kT of ghosts
Definition: FastJetInterfaceTool.h:278
FastJetInterfaceTool::m_ghostedArea
double m_ghostedArea
fastjet property: size of area coverded by each ghost
Definition: FastJetInterfaceTool.h:272
FastJetInterfaceTool::m_SIS_splitMergeStopScale
double m_SIS_splitMergeStopScale
fastjet property for SIS Cone plugin: split merge stop scale
Definition: FastJetInterfaceTool.h:246
FastJetInterfaceTool::m_clusterSequence
fastjet::ClusterSequence * m_clusterSequence
Pointer to actual cluster sequence.
Definition: FastJetInterfaceTool.h:399
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
FastJetInterfaceTool::m_SIS_splitMergeScale_STRING
std::string m_SIS_splitMergeScale_STRING
fastjet property for SIS Cone plugin: split merge scale
Definition: FastJetInterfaceTool.h:244
jet::ClusterSequence
fastjet::ClusterSequence ClusterSequence
Definition: ClusterSequence.h:21
lumiFormat.i
int i
Definition: lumiFormat.py:92
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
FastJetInterfaceTool::m_voronoiEffectiveRfact
double m_voronoiEffectiveRfact
fastjet property: Voronoi area effective radius
Definition: FastJetInterfaceTool.h:264
FastJetInterfaceTool::execute
virtual StatusCode execute(const fjetlist_t &inJets, fjetlist_t &outJets)
Execute method.
Definition: FastJetInterfaceTool.cxx:421
FastJetInterfaceTool::m_exclusiveDcut
double m_exclusiveDcut
Exclusive jet finder property: d cut.
Definition: FastJetInterfaceTool.h:253
CxxUtils::crc64addint
uint64_t crc64addint(uint64_t crc, uint64_t x)
Extend a previously-calculated CRC to include an int.
Definition: crc64.cxx:732
FastJetInterfaceTool::f_processWithArea
StatusCode f_processWithArea(const FastJetInterface::fjetlist_t &inJets, FastJetInterface::fjetlist_t &outJets)
Processor implementation: cluster sequence with area calculation.
Definition: FastJetInterfaceTool.cxx:544
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
FastJetInterfaceTool::m_inclusive
bool m_inclusive
Jet algorithm control property: inclusive/exclusive jet finding.
Definition: FastJetInterfaceTool.h:251
FastJetInterfaceTool::m_SIS_nPass
int m_SIS_nPass
fastjet property for SIS Cone plugin: max number of passes
Definition: FastJetInterfaceTool.h:238
FastJetInterfaceTool::m_recombinationSchemeType
std::string m_recombinationSchemeType
fastjet property: recombination scheme
Definition: FastJetInterfaceTool.h:231
CxxUtils::crc64
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
Definition: crc64.cxx:696
FastJetInterfaceTool::FastJetInterfaceTool
FastJetInterfaceTool(const std::string &n)
Standard AlgTool constructor.
Definition: FastJetInterfaceTool.cxx:131
FastJetInterfaceTool.h
FastJetInterfaceTool::f_extractExclNjets
StatusCode f_extractExclNjets(FastJetInterface::fjetlist_t &outJets)
Exclusive extractor implementation.
Definition: FastJetInterfaceTool.cxx:563
FastJetInterfaceTool::m_SIS_protojetPtMin
double m_SIS_protojetPtMin
fastjet property for SIS Cone plugin: protojet min pt
Definition: FastJetInterfaceTool.h:240
IFastJetInterfaceTool::fjetlist_t
std::vector< fjet_t > fjetlist_t
Definition: IFastJetInterfaceTool.h:30
FastJetInterfaceTool::m_exclusiveNjets
int m_exclusiveNjets
Exclusive jet finder property: number of jets requested.
Definition: FastJetInterfaceTool.h:255
xAOD::JetAlgorithmType::genkt_for_passive_algorithm
@ genkt_for_passive_algorithm
Definition: JetContainerInfo.h:36
FastJetInterface::strategymap_t
std::map< std::string, fastjet::Strategy > strategymap_t
Mapping keyword on fastjet clustering strategy tag.
Definition: FastJetInterfaceTool.h:38
FastJetInterfaceTool::m_baseRNDSeed
uint64_t m_baseRNDSeed
Base seed for random generator. Constructed from m_jetAlgorithm and m_radius.
Definition: FastJetInterfaceTool.h:404
xAOD::JetAlgorithmType::cambridge_algorithm
@ cambridge_algorithm
Definition: JetContainerInfo.h:32
FastJetInterfaceTool::getKnownSplitMergeScales
const FastJetInterface::splitMergeScaleMap_t & getKnownSplitMergeScales()
Get known split merge scales.
Definition: FastJetInterfaceTool.cxx:93
FastJetInterfaceTool::updateRandomSeeds
virtual void updateRandomSeeds()
Set the area rnd seed according to run/event numbers.
Definition: FastJetInterfaceTool.cxx:649
FastJetInterfaceTool::m_ghostedMaxRap
double m_ghostedMaxRap
fastjet property: ghost area rapidity limit (max)
Definition: FastJetInterfaceTool.h:266
EventInfo.h
xAOD::JetAlgorithmType::antikt_algorithm
@ antikt_algorithm
Definition: JetContainerInfo.h:33
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
FastJetInterfaceTool::getAreaDefinitionType
const std::string getAreaDefinitionType() const
Access fastjet area definition type.
Definition: FastJetInterfaceTool.cxx:590
FastJetInterfaceTool::m_ghostedGridScatter
double m_ghostedGridScatter
fastjet property: scatter of ghosts on grid
Definition: FastJetInterfaceTool.h:274
FastJetInterfaceTool::m_areaDefinition
fastjet::AreaDefinition * m_areaDefinition
Pointer to area definition.
Definition: FastJetInterfaceTool.h:401
FastJetInterface
Collection of types for the internal dictionary.
Definition: FastJetInterfaceTool.h:34
FastJetInterfaceTool::getJetDefinition
const fastjet::JetDefinition * getJetDefinition() const
Access fastjet JetDefinition.
Definition: FastJetInterfaceTool.cxx:584
FastJetInterfaceTool::m_radius
double m_radius
Jet algorithm property: radius/distance parameter.
Definition: FastJetInterfaceTool.h:249
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
FastJetInterfaceTool::m_SIS_doCaching
bool m_SIS_doCaching
fastjet property for SIS Cone plugin: do caching
Definition: FastJetInterfaceTool.h:242
FastJetInterfaceTool::getKnownStrategies
const FastJetInterface::strategymap_t & getKnownStrategies()
Get known jet finding strategies.
Definition: FastJetInterfaceTool.cxx:53
FastJetInterfaceTool::m_userRNDSeed
uint64_t m_userRNDSeed
Seed modifier for random generator : a user property (default to 0, i.e m_baseRNDSeed is unmodified)
Definition: FastJetInterfaceTool.h:406
FastJetInterfaceTool::f_extractInclusive
StatusCode f_extractInclusive(FastJetInterface::fjetlist_t &outJets)
Inclusive extractor implementation.
Definition: FastJetInterfaceTool.cxx:556
FastJetInterfaceTool::m_SIS_splitMergeScale
fastjet::SISConePlugin::SplitMergeScale m_SIS_splitMergeScale
fastjet tag: SIS split merge scale
Definition: FastJetInterfaceTool.h:394
crc64.h
A crc-64 implementation, using pclmul where possible.
FastJetInterface::schememap_t
std::map< std::string, fastjet::RecombinationScheme > schememap_t
Mapping keyword on fastjet recombination scheme tag.
Definition: FastJetInterfaceTool.h:40
FastJetInterfaceTool::m_ghostedRepeat
int m_ghostedRepeat
fastjet property: ghost area calculation repeatitions
Definition: FastJetInterfaceTool.h:270
FastJetInterfaceTool::getKnownAlgorithms
const FastJetInterface::algomap_t & getKnownAlgorithms()
Get known jet algorithms.
Definition: FastJetInterfaceTool.cxx:29
FastJetInterface::algomap_t
std::map< std::string, fastjet::JetAlgorithm > algomap_t
Mapping keyword on fastjet jet algorithm tag.
Definition: FastJetInterfaceTool.h:36
FastJetInterfaceTool::clusterSequence
virtual fastjet::ClusterSequence * clusterSequence()
Access fastjet ClusterSequence.
Definition: FastJetInterfaceTool.cxx:578
FastJetInterfaceTool::m_recombinationScheme
fastjet::RecombinationScheme m_recombinationScheme
fastjet tag: recombination scheme
Definition: FastJetInterfaceTool.h:391
FastJetInterfaceTool::f_extractExclDcut
StatusCode f_extractExclDcut(FastJetInterface::fjetlist_t &outJets)
Exclusive extractor implementation.
Definition: FastJetInterfaceTool.cxx:571
FastJetInterfaceTool::m_clusterStrategyType
std::string m_clusterStrategyType
fastjet property: cluster strategy
Definition: FastJetInterfaceTool.h:229
FastJetInterfaceTool::m_failedExecCtr
unsigned int m_failedExecCtr
Execution failure counter.
Definition: FastJetInterfaceTool.h:375
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37