Belle II Software  release-08-01-10
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 
11 #include <analysis/VariableManager/Manager.h>
12 
13 #include <analysis/dataobjects/RestOfEvent.h>
14 
15 #include <Math/Vector4D.h>
16 
17 #include <string>
18 #include <vector>
19 #include <set>
20 
21 namespace Belle2 {
26  class MCParticle;
27  class Particle;
28 
29  namespace Variable {
30 
35  double isInRestOfEvent(const Particle* particle);
39  double isCloneOfSignalSide(const Particle* particle);
40 
44  double hasAncestorFromSignalSide(const Particle* particle);
45 
50  double printROE(const Particle* particle);
51 
57  double hasCorrectROECombination(const Particle* particle);
58 
62  int nRemainingTracksInROE(const Particle* particle, const std::string& maskName = RestOfEvent::c_defaultMaskName);
63 
67  Manager::FunctionPtr nROE_RemainingTracksWithMask(const std::vector<std::string>& arguments);
68 
72  Manager::FunctionPtr useROERecoilFrame(const std::vector<std::string>& arguments);
73 
77  int nROE_RemainingTracks(const Particle* particle);
78 
82  double nROE_KLMClusters(const Particle* particle);
83 
87  double ROE_MC_E(const Particle* particle);
88 
92  double ROE_MC_M(const Particle* particle);
93 
97  double ROE_MC_P(const Particle* particle);
98 
102  double ROE_MC_Px(const Particle* particle);
103 
107  double ROE_MC_Py(const Particle* particle);
108 
112  double ROE_MC_Pz(const Particle* particle);
113 
117  double ROE_MC_Pt(const Particle* particle);
118 
122  double ROE_MC_PTheta(const Particle* particle);
123 
127  Manager::FunctionPtr ROE_MC_MissingFlags(const std::vector<std::string>& arguments);
128 
132  Manager::FunctionPtr nROE_Tracks(const std::vector<std::string>& arguments);
133 
137  Manager::FunctionPtr nROE_ECLClusters(const std::vector<std::string>& arguments);
138 
142  Manager::FunctionPtr nROE_NeutralECLClusters(const std::vector<std::string>& arguments);
143 
147  Manager::FunctionPtr nROE_ChargedParticles(const std::vector<std::string>& arguments);
148 
152  Manager::FunctionPtr nROE_Photons(const std::vector<std::string>& arguments);
153 
157  Manager::FunctionPtr nROE_NeutralHadrons(const std::vector<std::string>& arguments);
158 
162  Manager::FunctionPtr nROE_Composites(const std::vector<std::string>& arguments);
163 
168  Manager::FunctionPtr nROE_ParticlesInList(const std::vector<std::string>& arguments);
169 
173  Manager::FunctionPtr ROE_Charge(const std::vector<std::string>& arguments);
174 
178  Manager::FunctionPtr ROE_ExtraEnergy(const std::vector<std::string>& arguments);
179 
183  Manager::FunctionPtr ROE_NeutralExtraEnergy(const std::vector<std::string>& arguments);
184 
188  Manager::FunctionPtr ROE_E(const std::vector<std::string>& arguments);
189 
193  Manager::FunctionPtr ROE_M(const std::vector<std::string>& arguments);
194 
198  Manager::FunctionPtr ROE_P(const std::vector<std::string>& arguments);
199 
203  Manager::FunctionPtr ROE_Px(const std::vector<std::string>& arguments);
204 
208  Manager::FunctionPtr ROE_Py(const std::vector<std::string>& arguments);
209 
213  Manager::FunctionPtr ROE_Pz(const std::vector<std::string>& arguments);
214 
218  Manager::FunctionPtr ROE_Pt(const std::vector<std::string>& arguments);
219 
223  Manager::FunctionPtr ROE_PTheta(const std::vector<std::string>& arguments);
224 
228  Manager::FunctionPtr ROE_DeltaE(const std::vector<std::string>& arguments);
229 
233  Manager::FunctionPtr ROE_Mbc(const std::vector<std::string>& arguments);
234 
240  Manager::FunctionPtr WE_DeltaE(const std::vector<std::string>& arguments);
241 
247  Manager::FunctionPtr WE_Mbc(const std::vector<std::string>& arguments);
248 
253  Manager::FunctionPtr WE_MissM2(const std::vector<std::string>& arguments);
254 
259  Manager::FunctionPtr WE_MissPTheta(const std::vector<std::string>& arguments);
260 
265  Manager::FunctionPtr WE_MissP(const std::vector<std::string>& arguments);
266 
271  Manager::FunctionPtr WE_MissPx(const std::vector<std::string>& arguments);
272 
277  Manager::FunctionPtr WE_MissPy(const std::vector<std::string>& arguments);
278 
283  Manager::FunctionPtr WE_MissPz(const std::vector<std::string>& arguments);
284 
289  Manager::FunctionPtr WE_MissE(const std::vector<std::string>& arguments);
290 
294  Manager::FunctionPtr ROE_xiZ(const std::vector<std::string>& arguments);
295 
302  Manager::FunctionPtr WE_cosThetaEll(const std::vector<std::string>& arguments);
303 
307  Manager::FunctionPtr passesROEMask(const std::vector<std::string>& arguments);
308 
313  Manager::FunctionPtr WE_MissM2OverMissE(const std::vector<std::string>& arguments);
314 
320  Manager::FunctionPtr WE_q2lnuSimple(const std::vector<std::string>& arguments);
321 
328  Manager::FunctionPtr WE_q2lnu(const std::vector<std::string>& arguments);
329 
339  Manager::FunctionPtr pi0Prob(const std::vector<std::string>& arguments);
340 
350  Manager::FunctionPtr etaProb(const std::vector<std::string>& arguments);
351 
352 
353  // ------------------------------------------------------------------------------
354  // Below are some functions for ease of usage, they are not a part of variables
355  // ------------------------------------------------------------------------------
356 
369  ROOT::Math::PxPyPzEVector missing4Vector(const Particle* particle, const std::string& maskName, const std::string& opt);
370 
374  void checkMCParticleMissingFlags(const MCParticle* mcp, std::set<const MCParticle*> ROE_MCObjects, int& missingFlags);
375 
381  double isInThisRestOfEvent(const Particle* particle, const RestOfEvent* roe,
382  const std::string& maskName = RestOfEvent::c_defaultMaskName);
383 
384 
388  Manager::FunctionPtr bssMassDifference(const std::vector<std::string>& arguments);
392  const RestOfEvent* getRelatedROEObject(const Particle* particle, bool returnHostOnly = false);
393  }
395 } // Belle2 namespace
396 
static constexpr const char * c_defaultMaskName
Default mask name.
Definition: RestOfEvent.h:60
std::function< VarVariant(const Particle *)> FunctionPtr
functions stored take a const Particle* and return VarVariant.
Definition: Manager.h:113
Abstract base class for different kinds of events.