CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
TauHadronDecayFilter Class Reference

#include <TauHadronDecayFilter.h>

Inheritance diagram for TauHadronDecayFilter:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 TauHadronDecayFilter (const edm::ParameterSet &)
 
 ~TauHadronDecayFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual bool beginRun (edm::Run &, const edm::EventSetup &)
 
virtual void endRun ()
 
virtual bool filter (edm::Event &, const edm::EventSetup &)
 

Private Attributes

FSimEventmySimEvent
 
edm::ParameterSet particleFilter_
 
edm::ParameterSet vertexGenerator_
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: filters single tau events with a tau decaying hadronically

Definition at line 31 of file TauHadronDecayFilter.h.

Constructor & Destructor Documentation

TauHadronDecayFilter::TauHadronDecayFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 32 of file TauHadronDecayFilter.cc.

References edm::ParameterSet::getParameter().

32  {
33  //now do what ever initialization is needed
34 
36  ( "VertexGenerator" );
38  ( "ParticleFilter" );
39 
40  // mySimEvent = new FSimEvent(vertexGenerator_, particleFilter_);
41  mySimEvent = new FSimEvent( particleFilter_);
42 }
T getParameter(std::string const &) const
edm::ParameterSet vertexGenerator_
edm::ParameterSet particleFilter_
TauHadronDecayFilter::~TauHadronDecayFilter ( )

Definition at line 45 of file TauHadronDecayFilter.cc.

45  {
46 
47  // do anything here that needs to be done at desctruction time
48  // (e.g. close files, deallocate resources etc.)
49  delete mySimEvent;
50 
51 }

Member Function Documentation

bool TauHadronDecayFilter::beginRun ( edm::Run run,
const edm::EventSetup es 
)
privatevirtual

Reimplemented from edm::EDFilter.

Definition at line 92 of file TauHadronDecayFilter.cc.

References edm::EventSetup::getData(), and ParticleTable::instance().

93  {
94  // init Particle data table (from Pythia)
96  // edm::ESHandle < DefaultConfig::ParticleDataTable > pdt;
97 
98  es.getData(pdt);
99  if ( !ParticleTable::instance() )
100  ParticleTable::instance(&(*pdt));
101  mySimEvent->initializePdt(&(*pdt));
102 
103  return true;
104 
105 }
void getData(T &iHolder) const
Definition: EventSetup.h:67
static ParticleTable * instance()
Definition: ParticleTable.h:15
void initializePdt(const HepPDT::ParticleDataTable *aPdt)
Initialize the particle data table.
void TauHadronDecayFilter::endRun ( void  )
privatevirtual

Definition at line 108 of file TauHadronDecayFilter.cc.

108  {
109 }
bool TauHadronDecayFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDFilter.

Definition at line 55 of file TauHadronDecayFilter.cc.

References abs, edm::Event::getByLabel(), and CoreSimTrack::type().

56  {
57 
58 
59  Handle<vector<SimTrack> > simTracks;
60  iEvent.getByLabel("g4SimHits",simTracks);
61  Handle<vector<SimVertex> > simVertices;
62  iEvent.getByLabel("g4SimHits",simVertices);
63 
64  mySimEvent->fill( *simTracks, *simVertices );
65 
66  if( mySimEvent->nTracks() >= 2 ) {
67  FSimTrack& gene = mySimEvent->track(0);
68  if( abs(gene.type()) != 15) {
69  // first particle is not a tau.
70  // -> do not filter
71  return true;
72  }
73 
74  FSimTrack& decayproduct = mySimEvent->track(1);
75  switch( abs(decayproduct.type() ) ) {
76  case 11: // electrons
77  case 13: // muons
78  LogWarning("PFProducer")
79  <<"TauHadronDecayFilter: selecting single tau events with hadronic decay."<<endl;
80  // mySimEvent->print();
81  return false;
82  default:
83  return true;
84  }
85  }
86 
87  // more than 2 particles
88  return true;
89 }
void fill(const HepMC::GenEvent &hev, edm::EventID &Id)
fill the FBaseSimEvent from the current HepMC::GenEvent
Definition: FSimEvent.cc:26
#define abs(x)
Definition: mlp_lapack.h:159
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
unsigned int nTracks() const
Number of tracks.
Definition: FSimEvent.cc:48
int type() const
particle type (HEP PDT convension)
Definition: CoreSimTrack.h:40
FSimTrack & track(int id) const
Return track with given Id.

Member Data Documentation

FSimEvent* TauHadronDecayFilter::mySimEvent
private

Definition at line 44 of file TauHadronDecayFilter.h.

edm::ParameterSet TauHadronDecayFilter::particleFilter_
private

Definition at line 43 of file TauHadronDecayFilter.h.

edm::ParameterSet TauHadronDecayFilter::vertexGenerator_
private

Definition at line 42 of file TauHadronDecayFilter.h.