Neutral.hh
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace heavyhiggs
6 {
7 
8 namespace analysis
9 {
10 
18 template<typename Tagger_>
19 class Neutral : public HeavyHiggs<Tagger_>
20 {
21 
22 public:
23 
24  void SetFiles(Phase const& phase) override {
25  switch (phase.Tag()) {
26  case Tag::signal :
27  this->AddSignal(Process::Hbb);
28  break;
29  case Tag::background :
31  break;
32  }
33  }
34 
35  std::string Name() const override {
36  // return "Neutral-" + ColliderName(Collider()) + "-" + Name(PreCut()) + "-" + Name(Mass()) + "-Eta2.5";
37  return "Neutral-" + boca::Name(this->Collider()) + "-" + boca::units::Name(this->PreCut()) + "-" + boca::units::Name(this->Mass()) + "3-jet-bdt-large2";
38  };
39 
40 private:
41 
42  bool PassPreCut(boca::Event const&) const override {
43 // if (tag == Tag::background) return true;
44 // std::vector<Particle> particles = event.GenParticles();
45 // for (auto const & particle : particles) ERROR(boca::Name(particle.Info().Family().Member(Relative::particle).Id()), boca::Name(particle.Info().Family().Member(Relative::mother).Id()), boca::Name(particle.Info().Family().Member(Relative::step_mother).Id()), boca::Name(particle.Info().Family().Member(Relative::grand_mother).Id()));
46 // std::vector<Particle> bottoms = SortedByPt(CopyIfParticle(particles, Id::bottom));
47 // std::vector<Particle> tags;
48 // for (auto const & bottom : bottoms) if (bottom.Info().Family().Member(Relative::mother).Id() != to_int(Id::heavy_higgs) && bottom.Info().Family().Member(Relative::mother).Id() != to_int(Id::higgs) && abs(bottom.Info().Family().Member(Relative::mother).Id()) != to_int(Id::top) && bottom.Pt() > 20_GeV && abs(bottom.Rap()) < 2.5_rad) tags.emplace_back(bottom);
49 
50 // if (tags.size() < 2) return false;
51 
52 // static int sum = 0;
53 // static int zero = 0;
54 // static int one = 0;
55 // static int two = 0;
56 //
57 // ++sum;
58 // switch (tags.size()) {
59 // case 0 : ++zero; break;
60 // case 1 : ++one; break;
61 // case 2 : ++two; break;
62 // default : ERROR(tags.size());
63 // }
64 //
65 // std::cout << "sum: " << sum << " ; 0: " << zero << " ; 1: " << one << " ; 2: " << two << '\n';
66 
67 // std::vector<Particle> tops = CopyIfParticle(particles, Id::top);
68 // if (tops.size() != 2) return false;
69 // else {
70 // if (tops.at(0).Pt() < this->PreCut()) return false;
71 // if (tops.at(1).Pt() < this->PreCut()) return false;
72 // }
73 // if (event.MissingEt().Pt() < this->MissingEt()) return false;
74 // std::vector<Lepton> leptons = SortedByPt(event.Leptons());
75 // if (leptons.empty()) return false;
76 // if (leptons.front().Pt() < this->LeptonPt()) return false;
77 // std::vector<Jet> jets = event.Jets();
78 // if (jets.size() < 4) return false;
79  return true;
80  }
81 
82 };
83 
84 }
85 
86 }
Analysis for heavy higgs.
Definition: HeavyHiggs.hh:59
Momentum PreCut() const
Definition: HeavyHiggs.hh:118
void AddSignal(Process process)
Definition: HeavyHiggs.hh:265
Heavy Higgs partner.
Definition: Charged.hh:7
Base class for the event Topology.
Definition: Event.hh:53
std::string Name(Energy const &energy)
Definition: ElectronVolt.cpp:34
std::string Name() const override
Definition: Neutral.hh:35
void AddBackground(Process process)
Definition: HeavyHiggs.hh:269
void SetFiles(Phase const &phase) override
Definition: Neutral.hh:24
analysis subclass defining the HiggsCPV Analysis
Definition: Neutral.hh:19
boca::Collider Collider() const
Definition: HeavyHiggs.hh:113
std::string Name(Output output)
Definition: Base.cpp:23
boca::Mass Mass() const
Definition: HeavyHiggs.hh:68
The phases of the multivariant tagging process.
Definition: Phase.hh:16
boca::Tag Tag() const
The Tag of the multivariant tagging process.
Definition: Phase.cpp:18