PandaRoot
RhoFindOmittedParticle.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //--------------------------------------------------------------------------
14 // File and Version Information:
15 // $Id: RhoFindOmittedParticle.h,v 1.1.1.1 2001-05-04 16:20:06 marcel Exp $
16 //
17 // Description:
18 // Class RhoFindOmittedParticle.
19 // Given resonance (Y(4S)) momentum, B0 momentum, and
20 // K0L mass at creation, this object then finds the best
21 // candidate for the K0L 4-momentum given the 4-momentum
22 // of the J/psi and the direction of the neutral cluster.
23 //
24 // Because this is a general utility class, B0 is labeled Child,
25 // Y(4S) is labeled Reson (for Resonance), J/psi is labeled Obs
26 // (for Observed), and K0L is labeled Sought (for the calculated
27 // values) or Seen (for the actual IFR/EMC cluster).
28 //
29 // Constructor takes CM 4-momentum, Child mass, and Sought mass.
30 //
31 // fitToSeen() calls makeCone(), then closestFit().
32 //
33 // makeCone() finds the possible Sought 4-momenta given the Observed
34 // momentum.
35 //
36 // closestFit() finds the best fit between the cone of possibilities
37 // and the Seen neutral cluster.
38 //
39 // secondVector() returns the second momentum found by closestFit()
40 // but rejected as an inferior fit, for diagnostic purposes.
41 //
42 // If there is demand, a function may be added to extract the
43 // parameters of the cone describing possible Sought momenta;
44 // makeCone() and closestFit() would then be made public;
45 // or perhaps a subclass could implement this functionality.
46 //
47 // Note: this class by default currently only works in
48 // coordinate systems with the boost along the z-axis.
49 // Setting zBoostApprox to false overrides this.
50 // Note: this class currently assumes (as is the case for B0->J/psi KL)
51 // that in the resonance CM (Y(4S)) frame, the 3-momentum of the
52 // observed (J/psi) particle is much larger than the child (B0)
53 // 3-momentum, insuring that the CM angle between the observed and
54 // sought (KL) is greater than pi/2. (In the language of this class,
55 // openCos>0, since we use the opposite of the observed momentum).
56 //
57 // Environment:
58 // Software developed for the BaBar Detector at the SLAC B-Factory.
59 //
60 // Author List:
61 // Adam Breon Original Author
62 //
63 // Copyright Information:
64 // Copyright (C) 1997-1999 Lawrence Berkeley Laboratory
65 //
66 // ROOT Version by Marcel Kunze, RUB
67 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring)
68 //------------------------------------------------------------------------
69 
70 #ifndef RHOFINDOMITTEDPARTICLE_H
71 #define RHOFINDOMITTEDPARTICLE_H
72 
73 #include "TVector3.h"
74 #include "TLorentzVector.h"
75 
76 class RhoFindOmittedParticle : public TObject {
77 
78  //--------------------
79  // Instance Members --
80  //--------------------
81 
82  public:
83  // Constructors
84  RhoFindOmittedParticle(const TLorentzVector &ip4Reson, // set Y(4S) p4, usually.
85  const double imChild, // B0 mass.
86  const double imSought, // K mass (p4 not known).
87  const Bool_t izBoostApprox = kTRUE); // Approximate boost along z?
88 
89  virtual ~RhoFindOmittedParticle();
90 
91  TLorentzVector FitToSeen(const TLorentzVector &p4Obs, const TVector3 &p3Seen);
92 
93  // Returns the second-choice fit vector.
94  TLorentzVector SecondVector() const;
95 
96  protected:
97  void MakeCone(const TLorentzVector &p4Obs);
98 
99  TLorentzVector ClosestFit(const TVector3 &p3Seen);
100 
101  // TLorentzVector p4Reson; // 4-momentum of resonance
102  // float mChild; // mass of Child
103  float mSought2;
104 
105  Bool_t zBoostApprox;
106  // the z direction, or use real boost?
107  // (Default = kTRUE).
108 
110 
111  // Caches value of p4Obs to avoid recalculating the code unnecessarily.
112  TLorentzVector p4ObsCache;
113 
114  // Stores value of worse fit so we can look at it.
115  TLorentzVector secondChoice;
116 
117  // BOOST vectors.
118  TVector3 beta;
119 
120  // The cone parameters.
121  TVector3 cmAxis;
122  double openCos;
123  double cmESought;
124  double cmpSought2;
125 
126  public:
127  ClassDef(RhoFindOmittedParticle, 1) // Finds the best candidate for the K0L 4-momentum
128 };
129 #endif
TVector3 beta
The other vector, stored.
TLorentzVector SecondVector() const
double cmESought
cos of opening angle.
TLorentzVector p4ObsCache
energy, squared 3-momentum of Child.
TVector3 cmAxis
From lab to CM (-beta CM to lab)
TLorentzVector FitToSeen(const TLorentzVector &p4Obs, const TVector3 &p3Seen)
double openCos
Axis of CM cone.
virtual ~RhoFindOmittedParticle()
RhoFindOmittedParticle(const TLorentzVector &ip4Reson, const double imChild, const double imSought, const Bool_t izBoostApprox=kTRUE)
void MakeCone(const TLorentzVector &p4Obs)
float cmEChild
Flag: do we approximate boost in.
Bool_t zBoostApprox
squared mass of Sought
double cmpSought2
CM energy of sought particle.
TLorentzVector ClosestFit(const TVector3 &p3Seen)