Belle II Software  release-06-01-15
ROEVariables.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 #include <analysis/VariableManager/Manager.h>
11 #include <mdst/dataobjects/MCParticle.h>
12 #include <analysis/dataobjects/RestOfEvent.h>
13 #include <TLorentzVector.h>
14 #include <string>
15 #include <vector>
16 #include <set>
17 
18 namespace Belle2 {
23  class Particle;
24 
25  namespace Variable {
26 
31  double isInRestOfEvent(const Particle* particle);
35  double isCloneOfSignalSide(const Particle* particle);
36 
40  double hasAncestorFromSignalSide(const Particle* particle);
41 
46  double printROE(const Particle* particle);
47 
51  double nRemainingTracksInROE(const Particle* particle, const std::string& maskName = "");
52 
56  Manager::FunctionPtr nROE_RemainingTracksWithMask(const std::vector<std::string>& arguments);
57 
61  Manager::FunctionPtr useROERecoilFrame(const std::vector<std::string>& arguments);
62 
66  double nROE_RemainingTracks(const Particle* particle);
67 
71  double nROE_KLMClusters(const Particle* particle);
72 
76  double ROE_MC_E(const Particle* particle);
77 
81  double ROE_MC_M(const Particle* particle);
82 
86  double ROE_MC_P(const Particle* particle);
87 
91  double ROE_MC_Px(const Particle* particle);
92 
96  double ROE_MC_Py(const Particle* particle);
97 
101  double ROE_MC_Pz(const Particle* particle);
102 
106  double ROE_MC_Pt(const Particle* particle);
107 
111  double ROE_MC_PTheta(const Particle* particle);
112 
116  Manager::FunctionPtr ROE_MC_MissingFlags(const std::vector<std::string>& arguments);
117 
121  Manager::FunctionPtr nROE_Tracks(const std::vector<std::string>& arguments);
122 
126  Manager::FunctionPtr nROE_ECLClusters(const std::vector<std::string>& arguments);
127 
131  Manager::FunctionPtr nROE_NeutralECLClusters(const std::vector<std::string>& arguments);
132 
136  Manager::FunctionPtr nROE_ChargedParticles(const std::vector<std::string>& arguments);
137 
141  Manager::FunctionPtr nROE_Photons(const std::vector<std::string>& arguments);
142 
146  Manager::FunctionPtr nROE_NeutralHadrons(const std::vector<std::string>& arguments);
147 
151  Manager::FunctionPtr nROE_Composites(const std::vector<std::string>& arguments);
152 
157  Manager::FunctionPtr nROE_ParticlesInList(const std::vector<std::string>& arguments);
158 
162  Manager::FunctionPtr ROE_Charge(const std::vector<std::string>& arguments);
163 
167  Manager::FunctionPtr ROE_ExtraEnergy(const std::vector<std::string>& arguments);
168 
172  Manager::FunctionPtr ROE_NeutralExtraEnergy(const std::vector<std::string>& arguments);
173 
177  Manager::FunctionPtr ROE_E(const std::vector<std::string>& arguments);
178 
182  Manager::FunctionPtr ROE_M(const std::vector<std::string>& arguments);
183 
187  Manager::FunctionPtr ROE_P(const std::vector<std::string>& arguments);
188 
192  Manager::FunctionPtr ROE_Px(const std::vector<std::string>& arguments);
193 
197  Manager::FunctionPtr ROE_Py(const std::vector<std::string>& arguments);
198 
202  Manager::FunctionPtr ROE_Pz(const std::vector<std::string>& arguments);
203 
207  Manager::FunctionPtr ROE_Pt(const std::vector<std::string>& arguments);
208 
212  Manager::FunctionPtr ROE_PTheta(const std::vector<std::string>& arguments);
213 
217  Manager::FunctionPtr ROE_DeltaE(const std::vector<std::string>& arguments);
218 
222  Manager::FunctionPtr ROE_Mbc(const std::vector<std::string>& arguments);
223 
229  Manager::FunctionPtr WE_DeltaE(const std::vector<std::string>& arguments);
230 
236  Manager::FunctionPtr WE_Mbc(const std::vector<std::string>& arguments);
237 
242  Manager::FunctionPtr WE_MissM2(const std::vector<std::string>& arguments);
243 
248  Manager::FunctionPtr WE_MissPTheta(const std::vector<std::string>& arguments);
249 
254  Manager::FunctionPtr WE_MissP(const std::vector<std::string>& arguments);
255 
260  Manager::FunctionPtr WE_MissPx(const std::vector<std::string>& arguments);
261 
266  Manager::FunctionPtr WE_MissPy(const std::vector<std::string>& arguments);
267 
272  Manager::FunctionPtr WE_MissPz(const std::vector<std::string>& arguments);
273 
278  Manager::FunctionPtr WE_MissE(const std::vector<std::string>& arguments);
279 
283  Manager::FunctionPtr ROE_xiZ(const std::vector<std::string>& arguments);
284 
291  Manager::FunctionPtr WE_cosThetaEll(const std::vector<std::string>& arguments);
292 
296  Manager::FunctionPtr passesROEMask(const std::vector<std::string>& arguments);
297 
302  Manager::FunctionPtr WE_MissM2OverMissE(const std::vector<std::string>& arguments);
303 
309  Manager::FunctionPtr WE_q2lnuSimple(const std::vector<std::string>& arguments);
310 
317  Manager::FunctionPtr WE_q2lnu(const std::vector<std::string>& arguments);
318 
328  Manager::FunctionPtr pi0Prob(const std::vector<std::string>& arguments);
329 
339  Manager::FunctionPtr etaProb(const std::vector<std::string>& arguments);
340 
341 
342  // ------------------------------------------------------------------------------
343  // Below are some functions for ease of usage, they are not a part of variables
344  // ------------------------------------------------------------------------------
345 
358  TLorentzVector missing4Vector(const Particle* particle, const std::string& maskName, const std::string& opt);
359 
363  void checkMCParticleMissingFlags(const MCParticle* mcp, std::set<const MCParticle*> ROE_MCObjects, int& missingFlags);
364 
370  double isInThisRestOfEvent(const Particle* particle, const RestOfEvent* roe, const std::string& maskName = "");
371 
372 
376  Manager::FunctionPtr bssMassDifference(const std::vector<std::string>& arguments);
380  const RestOfEvent* getRelatedROEObject(const Particle* particle, bool returnHostOnly = false);
381  }
383 } // Belle2 namespace
384 
std::function< double(const Particle *)> FunctionPtr
NOTE: the python interface is documented manually in analysis/doc/Variables.rst (because we use ROOT ...
Definition: Manager.h:108
Abstract base class for different kinds of events.