ATLAS Offline Software
PileUpType.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 //*************************************************************************
6 //* *
7 //* class PileUpType **
8 //* *
9 //* Returns iterators on the pileup type particles:
10 //* - the signal particles
11 //* - the in-time Minimum bias particles
12 //* - the signal+in-time Minimum bias particles
13 //* - the out-of-time Minimum bias particles
14 //* - the cavern background particles
15 //* - the Selector function MUST have the operator() implemented - for example: isGenStable
16 //*
17 // Author: Ketevi A. Assamagan <ketevi@bnl.gov>
18 // Date: February 2008 *
19 //*************************************************************************
20 #ifndef TRUTHHELPER_PILEUPTYPE_H
21 #define TRUTHHELPER_PILEUPTYPE_H
22 
24 #include "AtlasHepMC/GenEvent.h"
25 #include "AtlasHepMC/GenParticle.h"
26 
27 #include <vector>
28 
33 class PileUpType {
34 public:
35 
38  PileUpType(const McEventCollection * collection);
39 
40 
41 
42  const HepMC::GenEvent * signal_mc_event() const;
43 
44  template<class Selector>
45  void signal_particles( std::vector<HepMC::ConstGenParticlePtr>& particleList,
46  const Selector& select ) const;
47 
52 
59 
60  template<class Selector>
61  void in_time_minimum_bias_particles( std::vector<HepMC::ConstGenParticlePtr>& particleList,
62  const Selector& select ) const;
63 
67 
68  template<class Selector>
69  void in_time_particles( std::vector<HepMC::ConstGenParticlePtr>& particleList,
70  const Selector& select ) const;
71 
73  template<class Selector>
74  void particles_in_two_bunch_crossings( std::vector<HepMC::ConstGenParticlePtr>& particleList,
75  const Selector& select ) const;
76 
78  template<class Selector>
79  void particles_outside_two_bunch_crossings( std::vector<HepMC::ConstGenParticlePtr>& particleList,
80  const Selector& select ) const;
81 
83  template<class Selector>
84  void cavern_background_particles( std::vector<HepMC::ConstGenParticlePtr>& particleList,
85  const Selector& select ) const;
86 
87 private:
89 };
90 
91 
93 
94 
95 #endif
PileUpType::particles_in_two_bunch_crossings
void particles_in_two_bunch_crossings(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
return the MC events in [-2BC, +2BC], including the signal McEvent at BC=0
PileUpType::in_time_minimum_bias_particles
void in_time_minimum_bias_particles(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
GenEvent.h
PileUpType::in_time_event_begin
McEventCollection::const_iterator in_time_event_begin() const
the in-time particles - this includes in the signal
Definition: PileUpType.cxx:50
GenParticle.h
PileUpType.icc
PileUpType::signal_particles
void signal_particles(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
PileUpType::PileUpType
PileUpType(const McEventCollection *collection)
need to pass the McEvntCollection this class does not own this collection and will NOT delete it at t...
Definition: PileUpType.cxx:8
McEventCollection.h
PileUpType::in_time_event_end
McEventCollection::const_iterator in_time_event_end() const
Definition: PileUpType.cxx:55
PileUpType::signal_and_in_time_minimum_bias_event_end
McEventCollection::const_iterator signal_and_in_time_minimum_bias_event_end() const
Definition: PileUpType.cxx:45
PileUpType::in_time_particles
void in_time_particles(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
PileUpType::m_particleList
const McEventCollection * m_particleList
Definition: PileUpType.h:88
PileUpType::in_time_minimum_bias_event_begin
McEventCollection::const_iterator in_time_minimum_bias_event_begin() const
extract the in-time minimum bias McEvent Particles from the McEventCollection A pair of iterators is ...
Definition: PileUpType.cxx:19
PileUpType::cavern_background_particles
void cavern_background_particles(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
return the MC events of the cavern background
PileUpType
For details on how the MC particles are defined and organized see https://twiki.cern....
Definition: PileUpType.h:33
PileUpType::particles_outside_two_bunch_crossings
void particles_outside_two_bunch_crossings(std::vector< HepMC::ConstGenParticlePtr > &particleList, const Selector &select) const
return the MC events in [-inf,-2BC] and [2BC,+inf], excluding the cavern background and the beam halo
PileUpType::in_time_minimum_bias_event_end
McEventCollection::const_iterator in_time_minimum_bias_event_end() const
Definition: PileUpType.cxx:30
PileUpType::signal_and_in_time_minimum_bias_event_begin
McEventCollection::const_iterator signal_and_in_time_minimum_bias_event_begin() const
extract the signal and the in-time minimum bias McEvent Particles from the McEventCollection A pair o...
Definition: PileUpType.cxx:40
DerivationFramework::ClustersInCone::select
void select(const xAOD::IParticle *particle, const float coneSize, const xAOD::CaloClusterContainer *clusters, std::vector< bool > &mask)
Definition: ClustersInCone.cxx:14
PileUpType::signal_mc_event
const HepMC::GenEvent * signal_mc_event() const
Definition: PileUpType.cxx:13