DAS  3.0
Das Analysis System
Selector

#include <fjcore.hh>

+ Collaboration diagram for Selector:

Classes

class  InvalidArea
 
class  InvalidWorker
 

Public Member Functions

 Selector ()
 
 Selector (SelectorWorker *worker_in)
 
virtual ~Selector ()
 
bool pass (const PseudoJet &jet) const
 
bool operator() (const PseudoJet &jet) const
 
unsigned int count (const std::vector< PseudoJet > &jets) const
 
PseudoJet sum (const std::vector< PseudoJet > &jets) const
 
double scalar_pt_sum (const std::vector< PseudoJet > &jets) const
 
void sift (const std::vector< PseudoJet > &jets, std::vector< PseudoJet > &jets_that_pass, std::vector< PseudoJet > &jets_that_fail) const
 
bool applies_jet_by_jet () const
 
std::vector< PseudoJetoperator() (const std::vector< PseudoJet > &jets) const
 
virtual void nullify_non_selected (std::vector< const PseudoJet * > &jets) const
 
void get_rapidity_extent (double &rapmin, double &rapmax) const
 
std::string description () const
 
bool is_geometric () const
 
bool has_finite_area () const
 
const SharedPtr< SelectorWorker > & worker () const
 
const SelectorWorkervalidated_worker () const
 
bool takes_reference () const
 
const Selectorset_reference (const PseudoJet &reference)
 
Selectoroperator&= (const Selector &b)
 
Selectoroperator|= (const Selector &b)
 

Protected Member Functions

void _copy_worker_if_needed ()
 

Private Attributes

SharedPtr< SelectorWorker_worker
 

Constructor & Destructor Documentation

◆ Selector() [1/2]

Selector ( )
inline
898 {}

◆ Selector() [2/2]

Selector ( SelectorWorker worker_in)
inline
899 {_worker.reset(worker_in);}

◆ ~Selector()

virtual ~Selector ( )
inlinevirtual
900 {}

Member Function Documentation

◆ _copy_worker_if_needed()

void _copy_worker_if_needed ( )
inlineprotected
963  {
964  if (_worker.unique()) return;
966  }

◆ applies_jet_by_jet()

bool applies_jet_by_jet ( ) const
inline
916  {
918  }

◆ count()

unsigned int count ( const std::vector< PseudoJet > &  jets) const
4185  {
4186  unsigned n = 0;
4187  const SelectorWorker * worker_local = validated_worker();
4188  if (worker_local->applies_jet_by_jet()) {
4189  for (unsigned i = 0; i < jets.size(); i++) {
4190  if (worker_local->pass(jets[i])) n++;
4191  }
4192  } else {
4193  std::vector<const PseudoJet *> jetptrs(jets.size());
4194  for (unsigned i = 0; i < jets.size(); i++) {
4195  jetptrs[i] = & jets[i];
4196  }
4197  worker_local->terminator(jetptrs);
4198  for (unsigned i = 0; i < jetptrs.size(); i++) {
4199  if (jetptrs[i]) n++;
4200  }
4201  }
4202  return n;
4203 }

◆ description()

std::string description ( ) const
inline
926  {
927  return validated_worker()->description();
928  }

◆ get_rapidity_extent()

void get_rapidity_extent ( double &  rapmin,
double &  rapmax 
) const
inline
923  {
924  return validated_worker()->get_rapidity_extent(rapmin, rapmax);
925  }

◆ has_finite_area()

bool has_finite_area ( ) const
inline
932  {
933  return validated_worker()->has_finite_area();
934  }

◆ is_geometric()

bool is_geometric ( ) const
inline
929  {
930  return validated_worker()->is_geometric();
931  }

◆ nullify_non_selected()

virtual void nullify_non_selected ( std::vector< const PseudoJet * > &  jets) const
inlinevirtual
920  {
922  }

◆ operator&=()

Selector & operator&= ( const Selector b)
4941  {
4942  _worker.reset(new SW_And(*this, b));
4943  return *this;
4944 }

◆ operator()() [1/2]

bool operator() ( const PseudoJet jet) const
inline
907  {
908  return pass(jet);
909  }

◆ operator()() [2/2]

FJCORE_BEGIN_NAMESPACE std::vector< PseudoJet > operator() ( const std::vector< PseudoJet > &  jets) const
4165  {
4166  std::vector<PseudoJet> result;
4167  const SelectorWorker * worker_local = validated_worker();
4168  if (worker_local->applies_jet_by_jet()) {
4169  for (std::vector<PseudoJet>::const_iterator jet = jets.begin();
4170  jet != jets.end(); jet++) {
4171  if (worker_local->pass(*jet)) result.push_back(*jet);
4172  }
4173  } else {
4174  std::vector<const PseudoJet *> jetptrs(jets.size());
4175  for (unsigned i = 0; i < jets.size(); i++) {
4176  jetptrs[i] = & jets[i];
4177  }
4178  worker_local->terminator(jetptrs);
4179  for (unsigned i = 0; i < jetptrs.size(); i++) {
4180  if (jetptrs[i]) result.push_back(jets[i]);
4181  }
4182  }
4183  return result;
4184 }

◆ operator|=()

Selector & operator|= ( const Selector b)
4945  {
4946  _worker.reset(new SW_Or(*this, b));
4947  return *this;
4948 }

◆ pass()

bool pass ( const PseudoJet jet) const
inline
901  {
903  throw Error("Cannot apply this selector to an individual jet");
904  }
905  return _worker->pass(jet);
906  }

◆ scalar_pt_sum()

double scalar_pt_sum ( const std::vector< PseudoJet > &  jets) const
4223  {
4224  double this_sum = 0.0;
4225  const SelectorWorker * worker_local = validated_worker();
4226  if (worker_local->applies_jet_by_jet()) {
4227  for (unsigned i = 0; i < jets.size(); i++) {
4228  if (worker_local->pass(jets[i])) this_sum += jets[i].pt();
4229  }
4230  } else {
4231  std::vector<const PseudoJet *> jetptrs(jets.size());
4232  for (unsigned i = 0; i < jets.size(); i++) {
4233  jetptrs[i] = & jets[i];
4234  }
4235  worker_local->terminator(jetptrs);
4236  for (unsigned i = 0; i < jetptrs.size(); i++) {
4237  if (jetptrs[i]) this_sum += jets[i].pt();
4238  }
4239  }
4240  return this_sum;
4241 }

◆ set_reference()

const Selector& set_reference ( const PseudoJet reference)
inline
944  {
945  if (! validated_worker()->takes_reference()){
946  return *this;
947  }
949  _worker->set_reference(reference);
950  return *this;
951  }

◆ sift()

void sift ( const std::vector< PseudoJet > &  jets,
std::vector< PseudoJet > &  jets_that_pass,
std::vector< PseudoJet > &  jets_that_fail 
) const
4245  {
4246  const SelectorWorker * worker_local = validated_worker();
4247  jets_that_pass.clear();
4248  jets_that_fail.clear();
4249  if (worker_local->applies_jet_by_jet()) {
4250  for (unsigned i = 0; i < jets.size(); i++) {
4251  if (worker_local->pass(jets[i])) {
4252  jets_that_pass.push_back(jets[i]);
4253  } else {
4254  jets_that_fail.push_back(jets[i]);
4255  }
4256  }
4257  } else {
4258  std::vector<const PseudoJet *> jetptrs(jets.size());
4259  for (unsigned i = 0; i < jets.size(); i++) {
4260  jetptrs[i] = & jets[i];
4261  }
4262  worker_local->terminator(jetptrs);
4263  for (unsigned i = 0; i < jetptrs.size(); i++) {
4264  if (jetptrs[i]) {
4265  jets_that_pass.push_back(jets[i]);
4266  } else {
4267  jets_that_fail.push_back(jets[i]);
4268  }
4269  }
4270  }
4271 }

◆ sum()

PseudoJet sum ( const std::vector< PseudoJet > &  jets) const
4204  {
4205  PseudoJet this_sum(0,0,0,0);
4206  const SelectorWorker * worker_local = validated_worker();
4207  if (worker_local->applies_jet_by_jet()) {
4208  for (unsigned i = 0; i < jets.size(); i++) {
4209  if (worker_local->pass(jets[i])) this_sum += jets[i];
4210  }
4211  } else {
4212  std::vector<const PseudoJet *> jetptrs(jets.size());
4213  for (unsigned i = 0; i < jets.size(); i++) {
4214  jetptrs[i] = & jets[i];
4215  }
4216  worker_local->terminator(jetptrs);
4217  for (unsigned i = 0; i < jetptrs.size(); i++) {
4218  if (jetptrs[i]) this_sum += jets[i];
4219  }
4220  }
4221  return this_sum;
4222 }

◆ takes_reference()

bool takes_reference ( ) const
inline
941  {
942  return validated_worker()->takes_reference();
943  }

◆ validated_worker()

const SelectorWorker* validated_worker ( ) const
inline
936  {
937  const SelectorWorker* worker_ptr = _worker.get();
938  if (worker_ptr == 0) throw InvalidWorker();
939  return worker_ptr;
940  }

◆ worker()

const SharedPtr<SelectorWorker>& worker ( ) const
inline
935 {return _worker;}

Member Data Documentation

◆ _worker

SharedPtr<SelectorWorker> _worker
private

the underlying worker


The documentation for this class was generated from the following files:
SelectorWorker::description
virtual std::string description() const
Definition: fjcore.hh:877
Selector::applies_jet_by_jet
bool applies_jet_by_jet() const
Definition: fjcore.hh:916
SelectorWorker::is_geometric
virtual bool is_geometric() const
Definition: fjcore.hh:889
SharedPtr::unique
bool unique() const
Definition: fjcore.hh:346
SelectorWorker::get_rapidity_extent
virtual void get_rapidity_extent(double &rapmin, double &rapmax) const
Definition: fjcore.hh:885
SelectorWorker::takes_reference
virtual bool takes_reference() const
Definition: fjcore.hh:878
Selector::takes_reference
bool takes_reference() const
Definition: fjcore.hh:941
Selector::pass
bool pass(const PseudoJet &jet) const
Definition: fjcore.hh:901
Ntupliser_cfg.jets
string jets
Definition: Ntupliser_cfg.py:41
SW_And
Definition: fjcore.cc:4351
SelectorWorker::copy
virtual SelectorWorker * copy()
Definition: fjcore.hh:882
Selector::validated_worker
const SelectorWorker * validated_worker() const
Definition: fjcore.hh:936
SelectorWorker::applies_jet_by_jet
virtual bool applies_jet_by_jet() const
Definition: fjcore.hh:876
Selector::_copy_worker_if_needed
void _copy_worker_if_needed()
Definition: fjcore.hh:963
SW_Or
Definition: fjcore.cc:4388
SelectorWorker::pass
virtual bool pass(const PseudoJet &jet) const =0
SharedPtr::get
T * get() const
Definition: fjcore.hh:342
SelectorWorker::set_reference
virtual void set_reference(const PseudoJet &)
Definition: fjcore.hh:879
PseudoJet
Definition: fjcore.hh:535
SelectorWorker::terminator
virtual void terminator(std::vector< const PseudoJet * > &jets) const
Definition: fjcore.hh:871
Selector::_worker
SharedPtr< SelectorWorker > _worker
the underlying worker
Definition: fjcore.hh:968
Error
Definition: fjcore.hh:462
SharedPtr::reset
void reset()
Definition: fjcore.hh:308
SelectorWorker::has_finite_area
virtual bool has_finite_area() const
Definition: fjcore.cc:4272
SelectorWorker
Definition: fjcore.hh:867