MINT2
SpinFactors4Body_Tensors.h
Go to the documentation of this file.
1 #ifndef SPINFACTORSSSS_FOURBODY_TENSORS_HH
2 #define SPINFACTORSSSS_FOURBODY_TENSORS_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 
6 #include "Mint/IDalitzEvent.h"
7 
8 #include "Mint/DecayTree.h"
9 #include "Mint/SpinFactor.h"
10 #include "Mint/counted_ptr.h"
11 #include <iostream>
12 
13 
14 //====================================================
15 
16 // ---------- D->VT with varius L states ----------
17 // ------------------------------------------------
19  protected:
20  // static DecayTree* _exampleDecay;
22 
23  virtual bool parseTree(const DalitzEventPattern& pat);
24 
25  public:
26  virtual void printYourself(std::ostream& os=std::cout) const=0;
28  : SpinFactor(theDecay, 4)
29  , V(0), T(0)
30  {
31  }
32 
34  virtual double getVal(IDalitzEvent& evt)=0;
35 
36  virtual const DecayTree& exampleDecay()=0;
37  virtual std::string name() const{
38  return "SpinFactor4:SF_DtoVT_VtoP0P1_TtoP2P3_BASE("
39  + theDecay().oneLiner() + ")";
40  }
41 
42 };
43 // ---------------------------------
44 
47  public:
48  virtual void printYourself(std::ostream& os=std::cout) const;
49 
52  {
53 // printYourself();
54  }
55 
57  virtual double getVal(IDalitzEvent& evt);
58 
59  static const DecayTree& getExampleDecay();
60  virtual const DecayTree& exampleDecay();
61  virtual std::string name() const{
62  return "SpinFactor4:SF_DtoVT_VtoP0P1_TtoP2P3_P("
63  + theDecay().oneLiner() + ")";
64  }
65 };
66 
67 // -----------------------------------------------
68 
71  public:
72  virtual void printYourself(std::ostream& os=std::cout) const;
73 
76  {
77 // printYourself();
78  }
79 
81  virtual double getVal(IDalitzEvent& evt);
82 
83  static const DecayTree& getExampleDecay();
84  virtual const DecayTree& exampleDecay();
85  virtual std::string name() const{
86  return "SpinFactor4:SF_DtoVT_VtoP0P1_TtoP2P3_D("
87  + theDecay().oneLiner() + ")";
88  }
89 };
90 
91 
92 //------------------------------------------------
93 // D->TT, various L states
94 //------------------------------------------------
96  protected:
98  virtual bool parseTree(const DalitzEventPattern& pat);
99 
100  public:
101  virtual void printYourself(std::ostream& os=std::cout) const=0;
103  : SpinFactor(theDecay, 4)
104  {
105  T[0]=T[1]=0;
106  }
107 
109  virtual double getVal(IDalitzEvent& evt)=0;
110 
111  virtual const DecayTree& exampleDecay()=0;
112  virtual std::string name() const{
113  return "SpinFactor4:SF_DtoT1T2_T1toP0P1_T2toP2P3_BASE("
114  + theDecay().oneLiner() + ")";
115  }
116 
117 };
118 //------------------------------------------------
119 
121  // the simplest D->T1, T2, with L=0
122  protected:
124 
125  public:
126  virtual void printYourself(std::ostream& os=std::cout) const;
129  {
130  //printYourself();
131  }
132 
134  virtual double getVal(IDalitzEvent& evt);
135 
136  static const DecayTree& getExampleDecay();
137  virtual const DecayTree& exampleDecay();
138  virtual std::string name() const{
139  return "SpinFactor4:SF_DtoT1T2_T1toP0P1_T2toP2P3_S("
140  + theDecay().oneLiner() + ")";
141  }
142 
143 };
144 //------------------------------------------------
146  // the simplest D->T1, T2, with L=0
147  protected:
149 
150  public:
151  virtual void printYourself(std::ostream& os=std::cout) const;
154  {
155  //printYourself();
156  }
157 
159  virtual double getVal(IDalitzEvent& evt);
160 
161  static const DecayTree& getExampleDecay();
162  virtual const DecayTree& exampleDecay();
163  virtual std::string name() const{
164  return "SpinFactor4:SF_DtoT1T2_T1toP0P1_T2toP2P3_P("
165  + theDecay().oneLiner() + ")";
166  }
167 
168 };
169 //------------------------------------------------
171  // the simplest D->T1, T2, with L=0
172  protected:
174 
175  public:
176  virtual void printYourself(std::ostream& os=std::cout) const;
179  {
180  //printYourself();
181  }
182 
184  virtual double getVal(IDalitzEvent& evt);
185 
186  static const DecayTree& getExampleDecay();
187  virtual const DecayTree& exampleDecay();
188  virtual std::string name() const{
189  return "SpinFactor4:SF_DtoT1T2_T1toP0P1_T2toP2P3_D("
190  + theDecay().oneLiner() + ")";
191  }
192 
193 };
194 // ---------------------------------
195 //------------------------------------------------
196 
197 // ------------------------------------------
198 // D->TP0, various subesquent decays of the T
199 //------------------------------------------------
200 
202  // the simplest D->T1, T2, with L=0
203  protected:
206  virtual bool parseTree(const DalitzEventPattern& pat);
207 
208  public:
209  virtual void printYourself(std::ostream& os=std::cout) const;
211  : SpinFactor(theDecay, 4)
212  , T(0), V(0)
213  {
214  }
215 
217  virtual double getVal(IDalitzEvent& evt);
218 
219  static const DecayTree& getExampleDecay();
220  virtual const DecayTree& exampleDecay();
221  virtual std::string name() const{
222  return "SpinFactor4:SF_DtoTP0_TtoVP1_VtoP2P3("
223  + theDecay().oneLiner() + ")";
224  }
225 
226 };
227 //------------------------------------------------
228 
230  // the simplest D->T1, T2, with L=0
231  protected:
234  virtual bool parseTree(const DalitzEventPattern& pat);
235 
236  public:
237  virtual void printYourself(std::ostream& os=std::cout) const;
239  : SpinFactor(theDecay, 4)
240  , T1(0), T2(0)
241  {
242  }
243 
245  virtual double getVal(IDalitzEvent& evt);
246 
247  static const DecayTree& getExampleDecay();
248  virtual const DecayTree& exampleDecay();
249  virtual std::string name() const{
250  return "SpinFactor4:SF_DtoT1P0_T1toT2P1_T2toP2P3("
251  + theDecay().oneLiner() + ")";
252  }
253 
254 };
255 
256 // ------------------ V->TS ------------
257 
259  protected:
262 
263  virtual bool parseTree(const DalitzEventPattern& pat);
264 
265  public:
266  virtual void printYourself(std::ostream& os=std::cout) const;
268  : SpinFactor(theDecay, 4)
269  , T(0), S(0)
270  {
271  }
272 
274  virtual double getVal(IDalitzEvent& evt);
275 
276  static const DecayTree& getExampleDecay();
277  virtual const DecayTree& exampleDecay();
278  virtual std::string name() const{
279  return "SpinFactor4:SF_DtoTS_TtoP0P1_StoP2P3("
280  + theDecay().oneLiner() + ")";
281  }
282 
283 };
284 // ---------------------------------
285 // D->pseudoTensor P0, various modes
286 // ---------------------------------
287 
288 
290  // the simplest D->T1, T2, with L=0
291  protected:
294  virtual bool parseTree(const DalitzEventPattern& pat);
295 
296  public:
297  virtual void printYourself(std::ostream& os=std::cout) const;
299  : SpinFactor(theDecay, 4)
300  , PT(0), V(0)
301  {
302  }
303 
305  virtual double getVal(IDalitzEvent& evt);
306 
307  static const DecayTree& getExampleDecay();
308  virtual const DecayTree& exampleDecay();
309  virtual std::string name() const{
310  return "SpinFactor4:SF_DtoPseudoTP0_PseudoTtoVP1_VtoP2P3("
311  + theDecay().oneLiner() + ")";
312  }
313 
314 };
315 //------------------------------------------------
316 
318  // the simplest D->T1, T2, with L=0
319  protected:
322  virtual bool parseTree(const DalitzEventPattern& pat);
323 
324  public:
325  virtual void printYourself(std::ostream& os=std::cout) const;
327  : SpinFactor(theDecay, 4)
328  , PT(0), S(0)
329  {
330  }
331 
333  virtual double getVal(IDalitzEvent& evt);
334 
335  static const DecayTree& getExampleDecay();
336  virtual const DecayTree& exampleDecay();
337  virtual std::string name() const{
338  return "SpinFactor4:SF_DtoPseudoTP0_PseudoTtoSP1_StoP2P3("
339  + theDecay().oneLiner() + ")";
340  }
341 
342 };
343 //------------------------------------------------
345  // the simplest D->T1, T2, with L=0
346  protected:
349  virtual bool parseTree(const DalitzEventPattern& pat);
350 
351  public:
352  virtual void printYourself(std::ostream& os=std::cout) const;
354  : SpinFactor(theDecay, 4)
355  , PT(0), T(0)
356  {
357  }
358 
360  virtual double getVal(IDalitzEvent& evt);
361 
362  static const DecayTree& getExampleDecay();
363  virtual const DecayTree& exampleDecay();
364  virtual std::string name() const{
365  return "SpinFactor4:SF_DtoPseudoTP0_PseudoTtoTP1_TtoP2P3("
366  + theDecay().oneLiner() + ")";
367  }
368 
369 };
370 
371 // -----------------------------------
372 // D->PA, A->TP (ang mom L=1 at each vtx)
373 // -----------------------------------
374 
376  // the simplest D->T1, T2, with L=0
377  protected:
380  virtual bool parseTree(const DalitzEventPattern& pat);
381 
382  public:
383  virtual void printYourself(std::ostream& os=std::cout) const;
385  : SpinFactor(theDecay, 4)
386  , A(0), T(0)
387  {
388  }
389 
391  virtual double getVal(IDalitzEvent& evt);
392 
393  static const DecayTree& getExampleDecay();
394  virtual const DecayTree& exampleDecay();
395  virtual std::string name() const{
396  return "SpinFactor4:SF_DtoAP0_AtoTP1_TtoP2P3("
397  + theDecay().oneLiner() + ")";
398  }
399 
400 };
401 
402 
403 // -----------------------------------
404 #endif
405 //
virtual bool parseTree(const DalitzEventPattern &pat)
virtual const DecayTree & exampleDecay()
virtual bool parseTree(const DalitzEventPattern &pat)
SF_DtoPseudoTP0_PseudoTtoSP1_StoP2P3(const AssociatedDecayTree &theDecay)
MINT::const_counted_ptr< AssociatedDecayTree > S
virtual const DecayTree & exampleDecay()
MINT::const_counted_ptr< AssociatedDecayTree > PT
static const DecayTree & getExampleDecay()
MINT::const_counted_ptr< AssociatedDecayTree > PT
virtual std::string name() const
SF_DtoAP0_AtoTP1_TtoP2P3(const AssociatedDecayTree &theDecay)
SF_DtoTS_TtoP0P1_StoP2P3(const AssociatedDecayTree &theDecay)
virtual const DecayTree & exampleDecay()=0
virtual const DecayTree & exampleDecay()
static const DecayTree & getExampleDecay()
MINT::const_counted_ptr< AssociatedDecayTree > T2
MINT::const_counted_ptr< AssociatedDecayTree > T
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_DtoVT_VtoP0P1_TtoP2P3_P(const AssociatedDecayTree &theDecay)
SF_DtoT1T2_T1toP0P1_T2toP2P3_BASE(const AssociatedDecayTree &theDecay)
MINT::const_counted_ptr< AssociatedDecayTree > S
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V
static const DecayTree & getExampleDecay()
static const DecayTree & getExampleDecay()
virtual void printYourself(std::ostream &os=std::cout) const
virtual bool parseTree(const DalitzEventPattern &pat)
virtual double getVal(IDalitzEvent &evt)=0
MINT::const_counted_ptr< AssociatedDecayTree > T[2]
MINT::const_counted_ptr< AssociatedDecayTree > A
virtual void printYourself(std::ostream &os=std::cout) const =0
virtual const DecayTree & exampleDecay()=0
virtual const DecayTree & exampleDecay()
virtual double getVal(IDalitzEvent &evt)=0
MINT::const_counted_ptr< AssociatedDecayTree > T
SF_DtoPseudoTP0_PseudoTtoTP1_TtoP2P3(const AssociatedDecayTree &theDecay)
virtual std::string name() const
virtual const DecayTree & exampleDecay()
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V
MINT::const_counted_ptr< AssociatedDecayTree > T
SF_DtoPseudoTP0_PseudoTtoVP1_VtoP2P3(const AssociatedDecayTree &theDecay)
virtual void printYourself(std::ostream &os=std::cout) const
virtual bool parseTree(const DalitzEventPattern &pat)
SF_DtoVT_VtoP0P1_TtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_DtoT1T2_T1toP0P1_T2toP2P3_P(const AssociatedDecayTree &theDecay)
virtual void printYourself(std::ostream &os=std::cout) const
virtual double getVal(IDalitzEvent &evt)
virtual void printYourself(std::ostream &os=std::cout) const =0
virtual const DecayTree & exampleDecay()
virtual void printYourself(std::ostream &os=std::cout) const
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
MINT::const_counted_ptr< AssociatedDecayTree > T
virtual bool parseTree(const DalitzEventPattern &pat)
static const DecayTree & getExampleDecay()
virtual bool parseTree(const DalitzEventPattern &pat)
virtual bool parseTree(const DalitzEventPattern &pat)
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
SF_DtoVT_VtoP0P1_TtoP2P3_D(const AssociatedDecayTree &theDecay)
virtual bool parseTree(const DalitzEventPattern &pat)
virtual void printYourself(std::ostream &os=std::cout) const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > T
virtual void printYourself(std::ostream &os=std::cout) const
virtual bool parseTree(const DalitzEventPattern &pat)
virtual std::string name() const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
static const DecayTree & getExampleDecay()
virtual std::string name() const
SF_DtoTP0_TtoVP1_VtoP2P3(const AssociatedDecayTree &theDecay)
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375
static const DecayTree & getExampleDecay()
virtual double getVal(IDalitzEvent &evt)
virtual const DecayTree & exampleDecay()
MINT::const_counted_ptr< AssociatedDecayTree > PT
static const DecayTree & getExampleDecay()
SF_DtoT1P0_T1toT2P1_T2toP2P3(const AssociatedDecayTree &theDecay)
virtual void printYourself(std::ostream &os=std::cout) const
virtual void printYourself(std::ostream &os=std::cout) const
MINT::const_counted_ptr< AssociatedDecayTree > T1
virtual void printYourself(std::ostream &os=std::cout) const
virtual double getVal(IDalitzEvent &evt)
virtual void printYourself(std::ostream &os=std::cout) const
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
SF_DtoT1T2_T1toP0P1_T2toP2P3_D(const AssociatedDecayTree &theDecay)
static const DecayTree & getExampleDecay()
virtual const DecayTree & exampleDecay()
virtual const DecayTree & exampleDecay()
SF_DtoT1T2_T1toP0P1_T2toP2P3_S(const AssociatedDecayTree &theDecay)
virtual void printYourself(std::ostream &os=std::cout) const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
virtual void printYourself(std::ostream &os=std::cout) const