ATLAS Offline Software
BSignalFilter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // ----------------------------------------------
6 //
7 // BSignalFilter.h
8 //
9 // Author: Malte Muller, August 2002
10 // Modified by: Cristiano Alpigiani
11 // <Cristiano.Alpigiani@cern.ch>,
12 // September 2013
13 //
14 // ----------------------------------------------
15 #ifndef GENERATORFILTERSBSIGNALFILTER_H
16 #define GENERATORFILTERSBSIGNALFILTER_H
17 
19 #include "GaudiKernel/NTuple.h"
20 #include <vector>
21 
22 #include "AtlasHepMC/GenEvent.h"
23 #include "AtlasHepMC/GenParticle.h"
24 #include "AtlasHepMC/GenVertex.h"
25 #include "TTree.h"
26 #include "TLorentzVector.h"
27 
28 class BSignalFilter : public GenFilter
29 {
30 
31  public:
32 
33  BSignalFilter(const std::string& name, ISvcLocator* pSvcLocator);
34  //
35  virtual StatusCode filterFinalize();
36  virtual StatusCode filterEvent();
37 
38  private:
39 
40  // ** Private data members **
41 
42  // For cuts on final particle pT and eta
55  double m_LVL1Counter; // Counting variable for events passing LVL1
56  double m_LVL2Counter; // Counting variable for events passing LVL2
57  double m_rejectedTrigger; // Failed to pass trigger
58  double m_rejectedAll; // Failed to pass filter (both trigger and signal selection)
59  int m_B_pdgid; // pdgID of the mother
60  int m_InvMass_PartId1, m_InvMass_PartId2; // pdgID of the couple used for mass cuts
62  double m_InvMassMin, m_InvMassMax; // Mass range for invariant mass cut
64  //
66 
67  // ** Private member functions **
68 
69  // Find child
70  void FindAllChildren(const HepMC::ConstGenParticlePtr& mother,std::string treeIDStr,
71  bool fromFinalB, bool &foundSignal, bool &passedAllCuts,
72  TLorentzVector &p1, TLorentzVector &p2, bool fromSelectedB,
73  TLorentzVector &total_4mom) const;
74 
75  // Check whether child has pass cuts
76  bool FinalStatePassedCuts(const HepMC::ConstGenParticlePtr& child) const;
77 
78  // Test whether final states pass cuts
79  bool test_cuts(const double myPT, const double testPT,
80  const double myEta, const double testEta) const;
81 
82  // LVL1 and LVL2 cuts
83  bool LVL1_Mu_Trigger(const HepMC::ConstGenParticlePtr& child) const;
84  bool LVL2_eMu_Trigger(const HepMC::ConstGenParticlePtr& child) const;
85 
86  // Print child (for debug)
87  void PrintChild(const HepMC::ConstGenParticlePtr& child, const std::string& treeIDStr, const bool fromFinalB) const;
88 
89 };
90 
91 
92 #endif
BSignalFilter::m_cuts_f_mu_pT
double m_cuts_f_mu_pT
Definition: BSignalFilter.h:48
BSignalFilter::m_TotalInvMassMax
double m_TotalInvMassMax
Definition: BSignalFilter.h:63
GenEvent.h
BSignalFilter
Definition: BSignalFilter.py:1
BSignalFilter::filterFinalize
virtual StatusCode filterFinalize()
Definition: BSignalFilter.cxx:650
BSignalFilter::m_InvMass_switch
bool m_InvMass_switch
Definition: BSignalFilter.h:47
BSignalFilter::PrintChild
void PrintChild(const HepMC::ConstGenParticlePtr &child, const std::string &treeIDStr, const bool fromFinalB) const
Definition: BSignalFilter.cxx:632
BSignalFilter::m_InvMass_PartFakeMass2
double m_InvMass_PartFakeMass2
Definition: BSignalFilter.h:61
BSignalFilter::m_TotalInvMassMin
double m_TotalInvMassMin
Definition: BSignalFilter.h:63
GenVertex.h
BSignalFilter::m_cuts_f_had_pT
double m_cuts_f_had_pT
Definition: BSignalFilter.h:48
GenFilter.h
BSignalFilter::m_localLVL2ElectronCutOn
bool m_localLVL2ElectronCutOn
Definition: BSignalFilter.h:46
BSignalFilter::m_localLVL1MuonCutOn
bool m_localLVL1MuonCutOn
Definition: BSignalFilter.h:45
BSignalFilter::m_localLVL2MuonCutPT
double m_localLVL2MuonCutPT
Definition: BSignalFilter.h:52
BSignalFilter::FinalStatePassedCuts
bool FinalStatePassedCuts(const HepMC::ConstGenParticlePtr &child) const
Definition: BSignalFilter.cxx:499
BSignalFilter::m_localLVL2MuonCutOn
bool m_localLVL2MuonCutOn
Definition: BSignalFilter.h:45
BSignalFilter::m_TotalInvMass_switch
bool m_TotalInvMass_switch
Definition: BSignalFilter.h:47
BSignalFilter::m_InvMass_PartFakeMass1
double m_InvMass_PartFakeMass1
Definition: BSignalFilter.h:61
GenParticle.h
BSignalFilter::test_cuts
bool test_cuts(const double myPT, const double testPT, const double myEta, const double testEta) const
Definition: BSignalFilter.cxx:375
BSignalFilter::m_cuts_f_had_on
bool m_cuts_f_had_on
Definition: BSignalFilter.h:43
BSignalFilter::m_EventCnt
int m_EventCnt
Definition: BSignalFilter.h:65
BSignalFilter::LVL2_eMu_Trigger
bool LVL2_eMu_Trigger(const HepMC::ConstGenParticlePtr &child) const
Definition: BSignalFilter.cxx:396
BSignalFilter::m_rejectedTrigger
double m_rejectedTrigger
Definition: BSignalFilter.h:57
GenFilter
Base class for event generator filtering modules.
Definition: GenFilter.h:30
BSignalFilter::m_localLVL2MuonCutEta
double m_localLVL2MuonCutEta
Definition: BSignalFilter.h:53
BSignalFilter::m_cuts_f_e_pT
double m_cuts_f_e_pT
Definition: BSignalFilter.h:48
BSignalFilter::m_localLVL2ElectronCutEta
double m_localLVL2ElectronCutEta
Definition: BSignalFilter.h:54
BSignalFilter::m_localLVL1MuonCutEta
double m_localLVL1MuonCutEta
Definition: BSignalFilter.h:52
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
BSignalFilter::m_cuts_f_e_eta
double m_cuts_f_e_eta
Definition: BSignalFilter.h:50
BSignalFilter::BSignalFilter
BSignalFilter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: BSignalFilter.cxx:33
BSignalFilter::m_InvMass_PartId2
int m_InvMass_PartId2
Definition: BSignalFilter.h:60
BSignalFilter::m_cuts_f_had_eta
double m_cuts_f_had_eta
Definition: BSignalFilter.h:50
BSignalFilter::m_cuts_f_e_on
bool m_cuts_f_e_on
Definition: BSignalFilter.h:43
BSignalFilter::m_cuts_f_gam_eta
double m_cuts_f_gam_eta
Definition: BSignalFilter.h:51
HepMC::ConstGenParticlePtr
const GenParticle * ConstGenParticlePtr
Definition: GenParticle.h:38
BSignalFilter::m_rejectedAll
double m_rejectedAll
Definition: BSignalFilter.h:58
BSignalFilter::m_localLVL1MuonCutPT
double m_localLVL1MuonCutPT
Definition: BSignalFilter.h:52
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
BSignalFilter::filterEvent
virtual StatusCode filterEvent()
Definition: BSignalFilter.cxx:87
BSignalFilter::m_cuts_f_K0_pT
double m_cuts_f_K0_pT
Definition: BSignalFilter.h:49
BSignalFilter::m_LVL2Counter
double m_LVL2Counter
Definition: BSignalFilter.h:56
BSignalFilter::m_cuts_f_gam_pT
double m_cuts_f_gam_pT
Definition: BSignalFilter.h:49
BSignalFilter::m_cuts_f_K0_eta
double m_cuts_f_K0_eta
Definition: BSignalFilter.h:51
BSignalFilter::m_cuts_f_gam_on
bool m_cuts_f_gam_on
Definition: BSignalFilter.h:44
BSignalFilter::m_cuts_f_K0_on
bool m_cuts_f_K0_on
Definition: BSignalFilter.h:44
BSignalFilter::m_B_pdgid
int m_B_pdgid
Definition: BSignalFilter.h:59
BSignalFilter::FindAllChildren
void FindAllChildren(const HepMC::ConstGenParticlePtr &mother, std::string treeIDStr, bool fromFinalB, bool &foundSignal, bool &passedAllCuts, TLorentzVector &p1, TLorentzVector &p2, bool fromSelectedB, TLorentzVector &total_4mom) const
Definition: BSignalFilter.cxx:412
BSignalFilter::m_localLVL2ElectronCutPT
double m_localLVL2ElectronCutPT
Definition: BSignalFilter.h:53
BSignalFilter::m_InvMassMin
double m_InvMassMin
Definition: BSignalFilter.h:62
BSignalFilter::m_cuts_f_mu_on
bool m_cuts_f_mu_on
Definition: BSignalFilter.h:43
BSignalFilter::m_cuts_f_mu_eta
double m_cuts_f_mu_eta
Definition: BSignalFilter.h:50
BSignalFilter::m_LVL1Counter
double m_LVL1Counter
Definition: BSignalFilter.h:55
BSignalFilter::m_InvMass_PartId1
int m_InvMass_PartId1
Definition: BSignalFilter.h:60
BSignalFilter::m_InvMassMax
double m_InvMassMax
Definition: BSignalFilter.h:62
BSignalFilter::LVL1_Mu_Trigger
bool LVL1_Mu_Trigger(const HepMC::ConstGenParticlePtr &child) const
Definition: BSignalFilter.cxx:381