ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FastReducer Class Reference

#include <FastReducer.h>

Collaboration diagram for FastReducer:

Public Member Functions

 FastReducer (const HypoJetVector &jv, const ConditionPtrs &conditionObjects, const ConditionFilters &conditionFilters, const ConditionFilterInds &conditionFilterInds, const Tree &conditionsTree, xAODJetCollector &jetCollector, const Collector &collector)
 
bool pass () const
 determine whether a set of jets satisfies all hypo conditions. More...
 
std::string toString () const
 

Private Member Functions

bool findInitialJetGroups (const HypoJetVector &jv, const Collector &collector)
 set up the data structures for propagation. More...
 
bool propagateJetGroups (const Collector &collector)
 
bool propagate_ (std::size_t child, const std::vector< std::size_t > &siblings, const Collector &)
 
std::string dataStructuresToStr () const
 
void dumpDataStructures (const Collector &) const
 
void recordJetGroup (std::size_t ind, const HypoJetVector &jg, const Collector &collector) const
 
void recordFiltering (std::size_t leaf_ind, std::size_t n_inputjets, int n_filteredjets, const Collector &collector) const
 
void collectLeafJets (xAODJetCollector &jetCollector, const Collector &collector) const
 
bool capacitySatisfied (std::size_t ind, const Collector &collector) const
 

Private Attributes

const ConditionPtrsm_conditions
 
std::vector< std::size_t > m_conditionMult
 
std::vector< unsigned int > m_conditionCap
 
std::vector< int > m_conditionClique
 
const ConditionFiltersm_conditionFilters
 
ConditionFilterInds m_conditionFilterInds
 
Tree m_tree
 tree structure for Conditions objects. More...
 
CondInd2JetGroupsInds m_satisfiedBy
 
std::map< std::size_t, std::set< std::size_t > > m_testedBy
 map Condition index onto a set of indices the condition has been tested with - used to prevent retesting and reduce combinations More...
 
std::map< std::size_t, HypoJetVectorm_indJetGroup
 map jet group indices to jet groups More...
 
JetGroupInd2ElemInds m_jg2elemjgs
 map jet group indices to indices of incoming jet groups More...
 
bool m_pass {false}
 event pass flag More...
 
HypoJetVector m_passingJets
 
JetGroupRegister m_jgRegister
 

Detailed Description

Definition at line 35 of file FastReducer.h.

Constructor & Destructor Documentation

◆ FastReducer()

FastReducer::FastReducer ( const HypoJetVector jv,
const ConditionPtrs conditionObjects,
const ConditionFilters conditionFilters,
const ConditionFilterInds conditionFilterInds,
const Tree conditionsTree,
xAODJetCollector jetCollector,
const Collector collector 
)

Definition at line 41 of file FastReducer.cxx.

47  :
48  m_conditions(conditions), m_conditionFilters(filters),
49  m_conditionFilterInds(filterInds), m_tree(tree) {
50 
51  // create an empty vector of indices of satisfying jet groups
52  // for each Condition.
53  for(std::size_t i = 0; i < m_tree.size(); ++i){
54  m_satisfiedBy.emplace(i, std::vector<std::size_t>{});
55  m_testedBy.emplace(i, std::set<std::size_t>{});
56  m_conditionMult.push_back(conditions[i]->multiplicity());
57  m_conditionCap.push_back(conditions[i]->capacity());
58  m_conditionClique.push_back(conditions[i]->clique());
59  }
60 
61 
62  if(!findInitialJetGroups(jv,
63  collector)){
64  if(collector){
65  collector->collect("FastReducer early return",
66  "from findInitialJetGroups");
67  dumpDataStructures(collector);
68  }
69  return; // m_pass retains initial value ie false
70  }
71 
72 
73  if(!propagateJetGroups(collector)){
74  // error propagating edges. e.g. unsatisfied condition
75  if(collector){
76  collector->collect("FastReducer early return",
77  "from propagateJetGroups");
78  dumpDataStructures(collector);
79  }
80  return; // early return, leave m_pass = false
81  }
82 
83  m_pass = true;
84  if(collector){
85  collector->collect("FastReducer returning",
86  "from propagateJetGroups");
87  dumpDataStructures(collector);
88  }
89 
90  collectLeafJets(jetCollector, collector);
91 
92 }

Member Function Documentation

◆ capacitySatisfied()

bool FastReducer::capacitySatisfied ( std::size_t  ind,
const Collector collector 
) const
private

Definition at line 555 of file FastReducer.cxx.

556  {
557  // Check that the number of satisfying jet groups is sufficient to
558  // satisfy the capacity of the Condition. Uses include handling
559  // of Conditions which represent multiple identical conditions.
560 
561  auto jgMult = m_satisfiedBy.at(ind).size();
562  auto capSat = m_conditions.at(ind)->multiplicitySatisfied(jgMult, collector);
563  if (!capSat and collector) {
564  collector->collect("FastReduce", "Condition " + std::to_string(ind)
565  + " unsatisfied multiplicity, aborting");
566  }
567 
568  return capSat;
569 }

◆ collectLeafJets()

void FastReducer::collectLeafJets ( xAODJetCollector jetCollector,
const Collector collector 
) const
private

jets by indices

Definition at line 94 of file FastReducer.cxx.

95  {
96 
97  // basic passing jet reporting
98 
99  // find the indices of the jets that make up the jet groups that pass
100  // the root node.
101 
102  //.. obtain the passing jet groups for the root node...
103 
104  std::set<std::size_t> rootSatJetGroupInds(m_satisfiedBy.at(0).begin(),
105  m_satisfiedBy.at(0).end());
106 
107  // ...obtain the elemental jet group indicies...
108 
109  std::set<std::size_t> rootElSatJetGroupInds;
110  for (const auto& ji : rootSatJetGroupInds) {
111  rootElSatJetGroupInds.insert(m_jg2elemjgs.at(ji).begin(),
112  m_jg2elemjgs.at(ji).end());
113  }
114 
115 
116 
117  // now do the same for the leaf nodes
118 
119 
120  auto leaves = m_tree.leaves();
121  // obtain the jet group indices for the jet groups satisfying the leaf conds
122  for (const auto& ci : leaves) { // for each leaf node...
123  std::set<std::size_t> satJetGroupInds;
124 
125  // ... collect the (possibly compound) jet group indices...
126  satJetGroupInds.insert(m_satisfiedBy.at(ci).cbegin(),
127  m_satisfiedBy.at(ci).cend());
128 
129  // ...obtain the corresponding elemental jet group indices...
130  std::set<std::size_t> elSatJetGroupInds;
131  for (const auto& ji : satJetGroupInds) {
132  elSatJetGroupInds.insert(m_jg2elemjgs.at(ji).begin(),
133  m_jg2elemjgs.at(ji).end());
134  }
135 
136  // .. get the leg label for the condition (possibly "")
137  auto conditionLabel = (m_conditions.at(ci))->label();
138 
139  if (collector) {
140  std::stringstream ss;
141  ss << "elSatJettGroupInds.size() "
142  << conditionLabel
143  << ": "
144  << elSatJetGroupInds.size();
145  collector->collect("FastReducer", ss.str());
146  }
147 
148  // ... use the elemental jet group indices to recover the jets
149 
150  // if the leaf not jet is one of the jets that contributes to
151  // passing root, store it in the collector, labelled by the leaf node
152  // chainLegLabel
153 
154  auto end = rootElSatJetGroupInds.end();
155  for(const auto& ji : elSatJetGroupInds) {
156 
157  if (rootElSatJetGroupInds.find(ji) != end){
158  jetCollector.addJets(m_indJetGroup.at(ji).begin(), //jets py ptrs
159  m_indJetGroup.at(ji).end(),
160  conditionLabel);
161  }
162  }
163  }
164  if (collector) {
165  collector->collect("FastReducer",
166  "collected " + std::to_string(jetCollector.size()));
167  }
168 }

◆ dataStructuresToStr()

std::string FastReducer::dataStructuresToStr ( ) const
private

Definition at line 463 of file FastReducer.cxx.

463  {
464 
465  std::stringstream ss;
466  ss << "FastReducer data structure dumps\nindToJetGroup:\n";
467  for(const auto& pair : m_indJetGroup){
468  ss << pair.first << " [";
469  for(const auto& j : pair.second){
470  ss << static_cast<const void*>(j.get()) << " ";
471  }
472  ss << "]\n";
473  }
474 
475  ss << "satisfiedBy: \n";
476  for(const auto& pair : m_satisfiedBy){
477  ss << pair.first << " [";
478  for(const auto& i : pair.second){
479  ss << i << " ";
480  }
481  ss << "]\n";
482  }
483 
484 
485  ss << "testedBy: \n";
486  for(const auto& pair : m_testedBy){
487  ss << pair.first << " [";
488  for(const auto& i : pair.second){
489  ss << i << " ";
490  }
491  ss << "]\n";
492  }
493 
494  ss << "jg to elemental jgs: \n";
495 
496  for(const auto& pair : m_jg2elemjgs){
497  ss << pair.first << " [";
498  for(const auto& i : pair.second){
499  ss << i << " ";
500  }
501  ss << "]\n";
502  }
503  ss <<'\n';
504 
505  return ss.str();
506  }

◆ dumpDataStructures()

void FastReducer::dumpDataStructures ( const Collector collector) const
private

Definition at line 508 of file FastReducer.cxx.

508  {
509 
510  if(!collector){return;}
511 
512  collector->collect("FastReducer",
514  }

◆ findInitialJetGroups()

bool FastReducer::findInitialJetGroups ( const HypoJetVector jv,
const Collector collector 
)
private

set up the data structures for propagation.

Propagation is the act of combining jet groups satisfying children in preparration for testing against parent conditions.

Definition at line 171 of file FastReducer.cxx.

172  {
173 
174 
175  /*
176  Will now test the incoming jets against the leaf conditions.
177  */
178 
179  auto leaves = m_tree.leaves();
180 
181  // if a jet group satisfies a condition, note the fact,
182  // and store it by index
183 
184  for(const auto& leaf: leaves){
185 
186  auto filtered_jets = jv;
187  auto& filter_ind = m_conditionFilterInds[leaf];
188  if (filter_ind != -1) {
189  const auto& filter = m_conditionFilters[filter_ind];
190  filtered_jets = filter->filter(filtered_jets, collector);
191  }
192 
193  auto iters = std::make_pair(filtered_jets.begin(),
194  filtered_jets.end());
195 
196  recordFiltering(leaf, jv.size(), filtered_jets.size(), collector);
197 
198  auto grouper = grouperByCapacityFactory(m_conditions[leaf]->capacity(),
199  iters.first,
200  iters.second);
201 
202  while(true){
203  auto jg = grouper->next(); // obtain a vector of jet ptrs
204  if (jg.empty()) {break;}
205 
206  auto jg_ind = m_jgRegister.record(jg); // obtain an int index for the jg
207  m_testedBy[leaf].insert(jg_ind);
208 
209  if (m_conditions[leaf]->isSatisfied(jg, collector)){
210 
211  if(collector){recordJetGroup(jg_ind, jg, collector);}
212 
213  // note the index if the jet group if it passes a Condition
214  m_satisfiedBy[leaf].push_back(jg_ind);
215 
216  // keep track of the indices for the individual jets that
217  // make up the passing jet group.
218  //
219  // m_jg2elemjgs[idx] = {idx1, idx2, idx3}
220  // where idx is the index of the jet group, and {} is a
221  // vector containing the individual jet group indices of
222  // the jet group with index idx.
223  //
224  // if the jet group contains a single jet, this reduces to
225  // m_jg2elemjgs[idx] = {idx}
226 
227  std::vector<std::size_t>& elem_indices = m_jg2elemjgs[jg_ind];
228  if (elem_indices.empty()) { // first time jg_ind is seen
229  if (jg.size() > 1) {
230  elem_indices.reserve(jg.size());
231  for (const auto& hj : jg){
232 
233  // deal with a jet member of the jet group
234  auto single_jet_group = std::vector{hj};
235  auto single_jet_index = m_jgRegister.record(single_jet_group);
236  auto& single_jet_elems = m_jg2elemjgs[single_jet_index];
237  if (single_jet_elems.empty()) {
238  single_jet_elems.push_back(single_jet_index);
239  m_indJetGroup.emplace(single_jet_index, single_jet_group);
240  }
241 
242  // add the index of the individual jet to m_jg2elemjgs[jg_ind]
243  elem_indices.push_back(single_jet_index);
244  }
245  } else {
246  // one jet in the jet group: its index maps onto a vector containing
247  // only its index.
248  elem_indices.push_back(jg_ind);
249  }
250  }
251 
252  // update jet gtoup index to jet group map.
253  m_indJetGroup.emplace(jg_ind, jg);
254  }
255  }
256  }
257 
258  if(collector){
259  for(const auto& p : m_indJetGroup){
260  recordJetGroup(p.first, p.second, collector);
261  }
262  }
263 
264  // check all leaf conditions are satisfied
265  for (const auto& i : leaves) {
266  if (!capacitySatisfied(i, collector)) {
267  return false;
268  }
269  }
270 
271  return true;
272 
273 }

◆ pass()

bool FastReducer::pass ( ) const

determine whether a set of jets satisfies all hypo conditions.

if pass, return a vector of jets that passes the Conditions.

Definition at line 552 of file FastReducer.cxx.

552 { return m_pass; }

◆ propagate_()

bool FastReducer::propagate_ ( std::size_t  child,
const std::vector< std::size_t > &  siblings,
const Collector collector 
)
private

Definition at line 346 of file FastReducer.cxx.

348  {
349 
350  // all combinations of the jet groups passing the sibings are
351  // constructed. One by one these combinations are tested for
352  // parent satisfaction.
353 
354 
355  // Edges are contructed between satisfying jet groups and the parent.
356  // if any such edge is constructed, the calling rroutine is notified so it
357  // can scheduling processing the parent as a child.
358 
359  std::size_t par = m_tree.parent(child);
360 
361  // child == 0 do not attempt to process parent of node.
362  if(child == 0){return true;}
363 
364 
365  // calculate the external product of the jet groups
366  // eg if condition c1 is satisfied by jg11 and jg12, while its only
367  // sibling c2 is satisfied by jg21, the external jet groups are
368  // jg11jg21, jg12jg21. Each of these are flattened.
369 
370  auto jg_product = makeJetGroupProduct(siblings,
375  m_jg2elemjgs,
376  m_conditions[par]->capacity(),
377  m_tree.is_simple(),
378  collector);
379 
380  // obtain the next product of jet groups passing siblings
381  auto jg_indices = jg_product->next(collector);
382 
383  // step through the jet groups found by combining ghe child groups
384  // check ecach combination to see if it satisfies the parent. If so
385  // add an edge from the contributing children, and from the new jet group to the parent.
386 
387  while (!jg_indices.empty()){ // empty jg_inidices: end of iteration
388  if (!std::is_sorted(jg_indices.begin(), jg_indices.end())) {
389  throw std::runtime_error("Jet hypo unsorted jet group");
390  }
391 
392  for (const auto& ind : jg_indices) {
393  if (m_jg2elemjgs.at(ind).size() != 1) {
394  throw std::runtime_error("Jet hypo jet group with non-elementary index");
395  }
396  }
397 
398 
399  // use the elemental jet group indices to form a vector of jet pointers
400  HypoJetVector jg;
401  for(const auto& i : jg_indices){
402  const auto& jetGroup = m_indJetGroup.at(i);
403  jg.insert(jg.end(), jetGroup.begin(), jetGroup.end());
404  }
405 
406  // obtain an index for the new jet group.
407  auto cur_jg = m_jgRegister.record(jg);
408 
409  // keep track of which jet groups a Condition sees.
410  if(m_testedBy[par].find(cur_jg) != m_testedBy[par].end()){
411  jg_indices = jg_product->next(collector);
412  continue;
413  }
414 
415  m_testedBy[par].insert(cur_jg);
416 
417  // check if parent is satisfied by a jet group (vector of jet ptrs)
418  if (m_conditions[par]->isSatisfied(jg, collector)){// par is a tree ind.
419 
420  // get an index for this vector of elementary jet group indices
421  m_satisfiedBy[par].push_back(cur_jg);
422 
423  m_jg2elemjgs[cur_jg] = jg_indices;
424  if(collector){recordJetGroup(cur_jg, jg, collector);}
425  }
426 
427  jg_indices = jg_product->next(collector);
428  }
429 
430  // check if enough jet groups pass the parent condition
431  bool par_satisfied =
432  m_conditions[par]->multiplicitySatisfied(m_satisfiedBy[par].size(),
433  collector);
434  if(collector and !par_satisfied){
435  collector->collect("FastReducer",
436  "Condition node " + std::to_string(par) +
437  " unsatisfied");
438  }
439 
440  return par_satisfied;
441 }

◆ propagateJetGroups()

bool FastReducer::propagateJetGroups ( const Collector collector)
private

Definition at line 276 of file FastReducer.cxx.

276  {
277 
278 
279  // construct jet groups according from jet groups that pass child
280  // conditions.
281  // This method controls which nodes to process.
282  // It checks whether all sibling nodes are processed.
283  // if so, processing of the parent is delegated to propagate_()
284 
285  //The parent of the next condition to be processed
286  // is found, and from the parent the condition's siblings are found,
287 
288  typedef std::priority_queue<std::size_t,
289  std::vector<std::size_t>,
290  DepthComparison> DepthQueue;
291 
292  auto comparator = DepthComparison(m_tree);
293  DepthQueue to_process(comparator); // conditions to be processed.
294 
295  // keep track if a condition's sibling has been processed.
296  std::vector<bool> checked(m_conditions.size(), false);
297 
298  // initialise the queue with satisfied leaf conditions indices.
299  for(const auto& item : m_satisfiedBy){
300  if(!(item.second.empty())){
301  to_process.push(item.first);
302  }
303  }
304 
305  while(!to_process.empty()){
306 
307  auto k = to_process.top();
308  to_process.pop();
309 
310  if(checked[k]){
311  continue;
312  }
313 
314  if(k == 0){
315  // have propagated to the root node
316  if(m_satisfiedBy.at(0).empty()){
317  if(collector){
318  collector->collect("FastReducer",
319  "Condition node 0 fails");
320  }
321  return false;
322  } else {
323  return true; // event passes
324  }
325  }
326 
327  auto siblings = m_tree.siblings(k);
328  for(const auto& s : siblings){
329  checked[s] = true;
330  }
331 
332  // check if combinations of groups satisfying children satisfy their parent
333  if(!propagate_(k,
334  siblings,
335  collector)){
336  return false;
337  }
338 
339  std::size_t par = m_tree.parent(k);
340  to_process.push(par);
341  }
342  return true;
343 }

◆ recordFiltering()

void FastReducer::recordFiltering ( std::size_t  leaf_ind,
std::size_t  n_inputjets,
int  n_filteredjets,
const Collector collector 
) const
private

Definition at line 536 of file FastReducer.cxx.

539  {
540 
541  if(!collector) {return;}
542 
543  std::stringstream ss0;
544  ss0 << "FastReducer filtering Condition index: " << leaf_ind;
545 
546  std::stringstream ss1;
547  ss1 << "n jets. in: " << n_injets << " filtered: " << n_filteredjets << '\n';
548 
549  collector->collect(ss0.str(), ss1.str());
550 }

◆ recordJetGroup()

void FastReducer::recordJetGroup ( std::size_t  ind,
const HypoJetVector jg,
const Collector collector 
) const
private

Definition at line 517 of file FastReducer.cxx.

519  {
520 
521  std::stringstream ss0;
522  ss0 << "FastReducer jet group "
523  << ind << " [" << jg.size() <<"]:";
524 
525  std::stringstream ss1;
526  for(auto ip : jg){
527  const void* address = static_cast<const void*>(ip.get());
528  ss1 << "\n " << address << " eta " << ip->eta()
529  << " e " << ip->e()
530  << " et " << ip->et();
531  }
532  ss1 << '\n';
533  collector->collect(ss0.str(), ss1.str());
534 }

◆ toString()

std::string FastReducer::toString ( ) const

Definition at line 445 of file FastReducer.cxx.

445  {
446  std::stringstream ss;
447  ss << "FastReducer:\n";
448  ss << " treeVector: " << m_tree << '\n';;
449  ss << "FastReducer Conditions ["
450  << m_conditions.size() << "]: \n";
451 
452  std::size_t count{0u};
453  for(const auto& c : m_conditions){
454  auto sc = std::to_string(count++);
455  sc.insert(sc.begin(), 3-sc.length(), ' ');
456  ss << sc <<": "<< c->toString() + '\n';
457  }
458 
459  return ss.str();
460 }

Member Data Documentation

◆ m_conditionCap

std::vector<unsigned int> FastReducer::m_conditionCap
private

Definition at line 60 of file FastReducer.h.

◆ m_conditionClique

std::vector<int> FastReducer::m_conditionClique
private

Definition at line 61 of file FastReducer.h.

◆ m_conditionFilterInds

ConditionFilterInds FastReducer::m_conditionFilterInds
private

Definition at line 65 of file FastReducer.h.

◆ m_conditionFilters

const ConditionFilters& FastReducer::m_conditionFilters
private

Definition at line 64 of file FastReducer.h.

◆ m_conditionMult

std::vector<std::size_t> FastReducer::m_conditionMult
private

Definition at line 59 of file FastReducer.h.

◆ m_conditions

const ConditionPtrs& FastReducer::m_conditions
private

Definition at line 58 of file FastReducer.h.

◆ m_indJetGroup

std::map<std::size_t, HypoJetVector> FastReducer::m_indJetGroup
private

map jet group indices to jet groups

Definition at line 84 of file FastReducer.h.

◆ m_jg2elemjgs

JetGroupInd2ElemInds FastReducer::m_jg2elemjgs
private

map jet group indices to indices of incoming jet groups

Definition at line 87 of file FastReducer.h.

◆ m_jgRegister

JetGroupRegister FastReducer::m_jgRegister
private

Definition at line 95 of file FastReducer.h.

◆ m_pass

bool FastReducer::m_pass {false}
private

event pass flag

Definition at line 91 of file FastReducer.h.

◆ m_passingJets

HypoJetVector FastReducer::m_passingJets
private

Definition at line 93 of file FastReducer.h.

◆ m_satisfiedBy

CondInd2JetGroupsInds FastReducer::m_satisfiedBy
private

Definition at line 75 of file FastReducer.h.

◆ m_testedBy

std::map<std::size_t, std::set<std::size_t> > FastReducer::m_testedBy
private

map Condition index onto a set of indices the condition has been tested with - used to prevent retesting and reduce combinations

Definition at line 81 of file FastReducer.h.

◆ m_tree

Tree FastReducer::m_tree
private

tree structure for Conditions objects.

The conditions tree gives relations among conditions (eg parent-child and siblings-of)

Definition at line 72 of file FastReducer.h.


The documentation for this class was generated from the following files:
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
FastReducer::capacitySatisfied
bool capacitySatisfied(std::size_t ind, const Collector &collector) const
Definition: FastReducer.cxx:555
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
FastReducer::dumpDataStructures
void dumpDataStructures(const Collector &) const
Definition: FastReducer.cxx:508
Tree::siblings
std::vector< std::size_t > siblings(std::size_t) const
Definition: Tree.cxx:39
PlotCalibFromCool.label
label
Definition: PlotCalibFromCool.py:78
Tree::is_simple
bool is_simple() const
Definition: Tree.cxx:64
FastReducer::m_conditionMult
std::vector< std::size_t > m_conditionMult
Definition: FastReducer.h:59
tree
TChain * tree
Definition: tile_monitor.h:30
grouperByCapacityFactory
std::unique_ptr< IJetGrouper > grouperByCapacityFactory(unsigned int cap, const HypoJetCIter &b, const HypoJetCIter &e)
Definition: GrouperByCapacityFactory.cxx:11
FastReducer::recordFiltering
void recordFiltering(std::size_t leaf_ind, std::size_t n_inputjets, int n_filteredjets, const Collector &collector) const
Definition: FastReducer.cxx:536
FastReducer::m_indJetGroup
std::map< std::size_t, HypoJetVector > m_indJetGroup
map jet group indices to jet groups
Definition: FastReducer.h:84
FastReducer::m_satisfiedBy
CondInd2JetGroupsInds m_satisfiedBy
Definition: FastReducer.h:75
FastReducer::findInitialJetGroups
bool findInitialJetGroups(const HypoJetVector &jv, const Collector &collector)
set up the data structures for propagation.
Definition: FastReducer.cxx:171
FastReducer::m_conditionFilters
const ConditionFilters & m_conditionFilters
Definition: FastReducer.h:64
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
FastReducer::m_testedBy
std::map< std::size_t, std::set< std::size_t > > m_testedBy
map Condition index onto a set of indices the condition has been tested with - used to prevent retest...
Definition: FastReducer.h:81
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
covarianceTool.filter
filter
Definition: covarianceTool.py:514
xAODJetCollector::size
std::size_t size() const
Definition: xAODJetCollector.cxx:66
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAODJetCollector::addJets
void addJets(const HypoJetCIter &begin, const HypoJetCIter &end, int chainPartInd=-1)
Definition: xAODJetCollector.cxx:10
FastReducer::m_jgRegister
JetGroupRegister m_jgRegister
Definition: FastReducer.h:95
FastReducer::recordJetGroup
void recordJetGroup(std::size_t ind, const HypoJetVector &jg, const Collector &collector) const
Definition: FastReducer.cxx:517
FastReducer::propagateJetGroups
bool propagateJetGroups(const Collector &collector)
Definition: FastReducer.cxx:276
lumiFormat.i
int i
Definition: lumiFormat.py:92
FastReducer::m_jg2elemjgs
JetGroupInd2ElemInds m_jg2elemjgs
map jet group indices to indices of incoming jet groups
Definition: FastReducer.h:87
DepthComparison
Definition: FastReducer.cxx:14
makeJetGroupProduct
std::unique_ptr< IJetGroupProduct > makeJetGroupProduct(const std::vector< std::size_t > &siblings, const CondInd2JetGroupsInds &satisfiedBy, const std::vector< std::size_t > &condMult, const std::vector< unsigned int > &condCap, const std::vector< int > &condClique, const JetGroupInd2ElemInds &jg2elemjgs, std::size_t parentCap, bool simpleTree, const Collector &)
Definition: JetGroupProductFactory.cxx:73
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
FastReducer::m_pass
bool m_pass
event pass flag
Definition: FastReducer.h:91
HypoJetVector
std::vector< pHypoJet > HypoJetVector
Definition: HypoJetDefs.h:27
FastReducer::m_conditionFilterInds
ConditionFilterInds m_conditionFilterInds
Definition: FastReducer.h:65
FastReducer::m_tree
Tree m_tree
tree structure for Conditions objects.
Definition: FastReducer.h:72
FastReducer::m_conditionClique
std::vector< int > m_conditionClique
Definition: FastReducer.h:61
FastReducer::propagate_
bool propagate_(std::size_t child, const std::vector< std::size_t > &siblings, const Collector &)
Definition: FastReducer.cxx:346
Tree::parent
std::size_t parent(std::size_t) const
Definition: Tree.cxx:34
FastReducer::dataStructuresToStr
std::string dataStructuresToStr() const
Definition: FastReducer.cxx:463
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
item
Definition: ItemListSvc.h:43
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
Tree::size
std::size_t size() const
Definition: Tree.cxx:43
FastReducer::m_conditionCap
std::vector< unsigned int > m_conditionCap
Definition: FastReducer.h:60
JetGroupRegister::record
std::size_t record(HypoJetVector v)
Definition: JetGroupRegister.cxx:7
FastReducer::collectLeafJets
void collectLeafJets(xAODJetCollector &jetCollector, const Collector &collector) const
Definition: FastReducer.cxx:94
FastReducer::m_conditions
const ConditionPtrs & m_conditions
Definition: FastReducer.h:58
python.compressB64.c
def c
Definition: compressB64.py:93
checkFileSG.ind
list ind
Definition: checkFileSG.py:118
fitman.k
k
Definition: fitman.py:528
Tree::leaves
const std::vector< std::size_t > & leaves() const
Definition: Tree.cxx:48