MINT2
SpinFactors4Body_FsVector.h
Go to the documentation of this file.
1 #ifndef SPINFACTORS_FOURBODY_FINALSTATE_VECTOR_HH
2 #define SPINFACTORS_FOURBODY_FINALSTATE_VECTOR_HH
3 // author: Philippe d'Argent (p.dargent@cern.ch)
4 // status: Tu 6 May 2014
5 
7 #include "Mint/IDalitzEvent.h"
9 #include "Mint/SpinFactor.h"
10 #include "Mint/counted_ptr.h"
11 #include <iostream>
12 
13 using namespace std;
14 // ==========================================
15 // Spin Factor 1-4
16 
18 protected:
19  // static DecayTree* _exampleDecay;
21 
22  virtual bool parseTree(const DalitzEventPattern& pat);
23 
24 public:
25  virtual void printYourself(std::ostream& os=std::cout) const=0;
27  : SpinFactor(theDecay, 4)
28  , A(0), V(0)
29  {
30  //if( ! parseTree(const DalitzEventPattern& pat)){
31  // throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3_BASE";
32  //}
33  //printYourself();
34  }
35 
37  virtual double getVal(IDalitzEvent& evt)=0;
38  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
39 
40  virtual const DecayTree& exampleDecay()=0;
41  virtual std::string name() const{
42  return "SpinFactor4:SF_BtoAV0_AtoVP1_VtoP2P3_BASE("
43  + theDecay().oneLiner() + ")";
44  }
45 
46 };
47 // ==========================================
48 // Spin Factor 1
49 
51  //int _pol;
52 protected:
53  int _pol;
55  //static int _pol;
56  public:
57  virtual void printYourself(std::ostream& os=std::cout) const;
58  SF_BtoAV0_AtoVP1_VtoP2P3(const AssociatedDecayTree& theDecay, const int pol)
59  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol)
60  {
61  // if( ! parseTree(const DalitzEventPattern& pat)){
62  //throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3";
63  // }
64  // _pol=pol;
65 // printYourself();
66  }
67 
69  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
70  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
71 
72  static const DecayTree& getExampleDecay();
73  virtual const DecayTree& exampleDecay();
74  virtual std::string name() const{
75  return "SpinFactor4:SF_BtoAV0_AtoVP1_VtoP2P3("
76  + theDecay().oneLiner() + ")";
77  }
78  int getPolarisation() {return _pol;}
79 
80 
81 };
82 
83 
84 // Spin Factor 2
85 
87 protected:
88  int _pol;
90 public:
91  virtual void printYourself(std::ostream& os=std::cout) const;
92  SF_BtoAV0_AtoVP1Dwave_VtoP2P3(const AssociatedDecayTree& theDecay, const int pol)
93  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol) {}
94 
96  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
97  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
98 
99  static const DecayTree& getExampleDecay();
100  virtual const DecayTree& exampleDecay();
101  virtual std::string name() const{
102  return "SpinFactor4:SF_BtoAV0_AtoVP1Dwave_VtoP2P3("
103  + theDecay().oneLiner() + ")";
104  }
105  int getPolarisation() {return _pol;}
106 };
107 
109 protected:
110  int _pol;
112 public:
113  virtual void printYourself(std::ostream& os=std::cout) const;
114  SF_BtoAV0_AtoVP1Dwave_VtoP2P3_P(const AssociatedDecayTree& theDecay, const int pol)
115  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol) {}
116 
118  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
119  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
120 
121  static const DecayTree& getExampleDecay();
122  virtual const DecayTree& exampleDecay();
123  virtual std::string name() const{
124  return "SpinFactor4:SF_BtoAV0_AtoVP1Dwave_VtoP2P3_P("
125  + theDecay().oneLiner() + ")";
126  }
127  int getPolarisation() {return _pol;}
128 };
129 
131 protected:
132  int _pol;
134 public:
135  virtual void printYourself(std::ostream& os=std::cout) const;
136  SF_BtoAV0_AtoVP1Dwave_VtoP2P3_D(const AssociatedDecayTree& theDecay, const int pol)
137  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol) {}
138 
140  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
141  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
142 
143  static const DecayTree& getExampleDecay();
144  virtual const DecayTree& exampleDecay();
145  virtual std::string name() const{
146  return "SpinFactor4:SF_BtoAV0_AtoVP1Dwave_VtoP2P3_D("
147  + theDecay().oneLiner() + ")";
148  }
149  int getPolarisation() {return _pol;}
150 };
151 
152 // Spin Factor 3
153 
155 protected:
156  int _pol;
158 public:
159  virtual void printYourself(std::ostream& os=std::cout) const;
160  SF_BtoAV0_AtoVP1_VtoP2P3_P( const AssociatedDecayTree& theDecay, const int pol)
161  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol){}
162 
164  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
165  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
166 
167  static const DecayTree& getExampleDecay();
168  virtual const DecayTree& exampleDecay();
169  virtual std::string name() const{
170  return "SpinFactor4:SF_BtoAV0_AtoVP1_VtoP2P3_P("
171  + theDecay().oneLiner() + ")";
172  }
173  int getPolarisation() {return _pol;}
174 
175 };
176 
177 // Spin Factor 4
178 
180 protected:
181  int _pol;
183 public:
184  virtual void printYourself(std::ostream& os=std::cout) const;
185  SF_BtoAV0_AtoVP1_VtoP2P3_D( const AssociatedDecayTree& theDecay, const int pol)
186  : SF_BtoAV0_AtoVP1_VtoP2P3_BASE(theDecay), _pol(pol){}
187 
189  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
190  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
191 
192  static const DecayTree& getExampleDecay();
193  virtual const DecayTree& exampleDecay();
194  virtual std::string name() const{
195  return "SpinFactor4:SF_BtoAV0_AtoVP1_VtoP2P3_D("
196  + theDecay().oneLiner() + ")";
197  }
198  int getPolarisation() {return _pol;}
199 
200 };
201 
202 // ==========================================
203 // Spin Factor 5
204 
206 protected:
207  // static DecayTree* _exampleDecay;
209 
210  virtual bool parseTree(const DalitzEventPattern& pat);
211 
212 public:
213  virtual void printYourself(std::ostream& os=std::cout) const=0;
215  : SpinFactor(theDecay, 4), S(0), A(0){}
216 
218  virtual double getVal(IDalitzEvent& evt)=0;
219  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
220 
221  virtual const DecayTree& exampleDecay()=0;
222  virtual std::string name() const{
223  return "SpinFactor4:SF_BtoAV0_AtoSP1_StoP2P3_BASE("
224  + theDecay().oneLiner() + ")";
225  }
226 
227 };
228 
230 protected:
231  int _pol;
233 public:
234  virtual void printYourself(std::ostream& os=std::cout) const;
235  SF_BtoAV0_AtoSP1_StoP2P3( const AssociatedDecayTree& theDecay,const int pol)
236  : SF_BtoAV0_AtoSP1_StoP2P3_BASE(theDecay), _pol(pol){}
237 
239  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
240  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
241 
242  static const DecayTree& getExampleDecay();
243  virtual const DecayTree& exampleDecay();
244  virtual std::string name() const{
245  return "SpinFactor4:SF_BtoAV0_AtoSP1_StoP2P3("
246  + theDecay().oneLiner() + ")";
247  }
248  int getPolarisation() {return _pol;}
249 };
250 
252 protected:
253  int _pol;
255 public:
256  virtual void printYourself(std::ostream& os=std::cout) const;
257  SF_BtoAV0_AtoSP1_StoP2P3_P( const AssociatedDecayTree& theDecay,const int pol)
258  : SF_BtoAV0_AtoSP1_StoP2P3_BASE(theDecay), _pol(pol){}
259 
261  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
262  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
263 
264  static const DecayTree& getExampleDecay();
265  virtual const DecayTree& exampleDecay();
266  virtual std::string name() const{
267  return "SpinFactor4:SF_BtoAV0_AtoSP1_StoP2P3_P("
268  + theDecay().oneLiner() + ")";
269  }
270  int getPolarisation() {return _pol;}
271 };
272 
274 protected:
275  int _pol;
277 public:
278  virtual void printYourself(std::ostream& os=std::cout) const;
279  SF_BtoAV0_AtoSP1_StoP2P3_D( const AssociatedDecayTree& theDecay,const int pol)
280  : SF_BtoAV0_AtoSP1_StoP2P3_BASE(theDecay), _pol(pol){}
281 
283  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
284  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
285 
286  static const DecayTree& getExampleDecay();
287  virtual const DecayTree& exampleDecay();
288  virtual std::string name() const{
289  return "SpinFactor4:SF_BtoAV0_AtoSP1_StoP2P3_D("
290  + theDecay().oneLiner() + ")";
291  }
292  int getPolarisation() {return _pol;}
293 };
294 
295 
296 // ==========================================
297 // Spin Factor 6
298 
300 protected:
301  // static DecayTree* _exampleDecay;
303 
304  virtual bool parseTree(const DalitzEventPattern& pat);
305 
306 public:
307  virtual void printYourself(std::ostream& os=std::cout) const=0;
309  : SpinFactor(theDecay, 4), V1(0), V2(0){}
310 
312  virtual double getVal(IDalitzEvent& evt)=0;
313  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
314 
315  virtual const DecayTree& exampleDecay()=0;
316  virtual std::string name() const{
317  return "SpinFactor4:SF_BtoV1V0_V1toV2P1_V2toP2P3_BASE("
318  + theDecay().oneLiner() + ")";
319  }
320 
321 };
322 // Spin Factor 6
324 protected:
325  int _pol;
327 public:
328  virtual void printYourself(std::ostream& os=std::cout) const;
329  SF_BtoV1V0_V1toV2P1_V2toP2P3( const AssociatedDecayTree& theDecay,const int pol)
330  : SF_BtoV1V0_V1toV2P1_V2toP2P3_BASE(theDecay), _pol(pol){}
331 
333  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
334  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
335 
336  static const DecayTree& getExampleDecay();
337  virtual const DecayTree& exampleDecay();
338  virtual std::string name() const{
339  return "SpinFactor4:SF_BtoV1V0_V1toV2P1_V2toP2P3("
340  + theDecay().oneLiner() + ")";
341  }
342  int getPolarisation() {return _pol;}
343 };
344 
346 protected:
347  int _pol;
349 public:
350  virtual void printYourself(std::ostream& os=std::cout) const;
351  SF_BtoV1V0_V1toV2P1_V2toP2P3_P( const AssociatedDecayTree& theDecay,const int pol)
352  : SF_BtoV1V0_V1toV2P1_V2toP2P3_BASE(theDecay), _pol(pol){}
353 
355  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
356  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
357 
358  static const DecayTree& getExampleDecay();
359  virtual const DecayTree& exampleDecay();
360  virtual std::string name() const{
361  return "SpinFactor4:SF_BtoV1V0_V1toV2P1_V2toP2P3_P("
362  + theDecay().oneLiner() + ")";
363  }
364  int getPolarisation() {return _pol;}
365 };
366 
368 protected:
369  int _pol;
371 public:
372  virtual void printYourself(std::ostream& os=std::cout) const;
373  SF_BtoV1V0_V1toV2P1_V2toP2P3_D( const AssociatedDecayTree& theDecay,const int pol)
374  : SF_BtoV1V0_V1toV2P1_V2toP2P3_BASE(theDecay), _pol(pol){}
375 
377  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
378  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
379 
380  static const DecayTree& getExampleDecay();
381  virtual const DecayTree& exampleDecay();
382  virtual std::string name() const{
383  return "SpinFactor4:SF_BtoV1V0_V1toV2P1_V2toP2P3_D("
384  + theDecay().oneLiner() + ")";
385  }
386  int getPolarisation() {return _pol;}
387 };
388 
389 
390 //=========================================================
391 //SF 7-8
392 
394 protected:
395  // static DecayTree* _exampleDecay;
397 
398  virtual bool parseTree(const DalitzEventPattern& pat);
399 
400 public:
401  virtual void printYourself(std::ostream& os=std::cout) const=0;
403  : SpinFactor(theDecay, 4), PT(0), V(0){}
404 
406  virtual double getVal(IDalitzEvent& evt)=0;
407  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
408 
409  virtual const DecayTree& exampleDecay()=0;
410  virtual std::string name() const{
411  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_BASE("
412  + theDecay().oneLiner() + ")";
413  }
414 
415 };
416 
417 // SF 7
419 protected:
420  int _pol;
422 public:
423  virtual void printYourself(std::ostream& os=std::cout) const;
425  : SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_BASE(theDecay), _pol(pol){}
426 
428  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
429  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
430 
431  static const DecayTree& getExampleDecay();
432  virtual const DecayTree& exampleDecay();
433  virtual std::string name() const{
434  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_P("
435  + theDecay().oneLiner() + ")";
436  }
437  int getPolarisation() {return _pol;}
438 
439 };
440 
441 // SF 8
443 protected:
444  int _pol;
446 public:
447  virtual void printYourself(std::ostream& os=std::cout) const;
449  : SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_BASE(theDecay), _pol(pol){}
450 
452  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
453  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
454 
455  static const DecayTree& getExampleDecay();
456  virtual const DecayTree& exampleDecay();
457  virtual std::string name() const{
458  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_D("
459  + theDecay().oneLiner() + ")";
460  }
461  int getPolarisation() {return _pol;}
462 
463 };
464 
465 //=========================================================
466 //SF 9
467 
469 protected:
470  // static DecayTree* _exampleDecay;
472 
473  virtual bool parseTree(const DalitzEventPattern& pat);
474 
475 public:
476  virtual void printYourself(std::ostream& os=std::cout) const=0;
478  : SpinFactor(theDecay, 4) , PT(0), S(0){}
479 
481  virtual double getVal(IDalitzEvent& evt)=0;
482  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
483 
484  virtual const DecayTree& exampleDecay()=0;
485  virtual std::string name() const{
486  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoSP1_StoP2P3_BASE("
487  + theDecay().oneLiner() + ")";
488  }
489 
490 };
491 
493 protected:
494  int _pol;
496 public:
497  virtual void printYourself(std::ostream& os=std::cout) const;
499  : SF_BtoPseudoTV0_PseudoTtoSP1_StoP2P3_BASE(theDecay), _pol(pol){}
500 
502  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
503  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
504 
505  static const DecayTree& getExampleDecay();
506  virtual const DecayTree& exampleDecay();
507  virtual std::string name() const{
508  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoSP1_StoP2P3_P("
509  + theDecay().oneLiner() + ")";
510  }
511  int getPolarisation() {return _pol;}
512 
513 };
514 
515 //----------------------------------------
516 //SF 10
517 
519 protected:
520  // static DecayTree* _exampleDecay;
522 
523  virtual bool parseTree(const DalitzEventPattern& pat);
524 
525 public:
526  virtual void printYourself(std::ostream& os=std::cout) const=0;
528  : SpinFactor(theDecay, 4), PT(0), T(0) {}
529 
531  virtual double getVal(IDalitzEvent& evt)=0;
532  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
533 
534  virtual const DecayTree& exampleDecay()=0;
535  virtual std::string name() const{
536  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoTP1_TtoP2P3_BASE("
537  + theDecay().oneLiner() + ")";
538  }
539 
540 };
541 
543 protected:
544  int _pol;
546 public:
547  virtual void printYourself(std::ostream& os=std::cout) const;
549  : SF_BtoPseudoTV0_PseudoTtoTP1_TtoP2P3_BASE(theDecay), _pol(pol){}
550 
552  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
553  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
554 
555  static const DecayTree& getExampleDecay();
556  virtual const DecayTree& exampleDecay();
557  virtual std::string name() const{
558  return "SpinFactor4:SF_BtoPseudoTV0_PseudoTtoTP1_TtoP2P3_P("
559  + theDecay().oneLiner() + ")";
560  }
561  int getPolarisation() {return _pol;}
562 };
563 
564 //----------------------------------------
565 //SF 11
566 
568 protected:
569  // static DecayTree* _exampleDecay;
571 
572  virtual bool parseTree(const DalitzEventPattern& pat);
573 
574 public:
575  virtual void printYourself(std::ostream& os=std::cout) const=0;
577  : SpinFactor(theDecay, 4), T(0), V(0){}
578 
580  virtual double getVal(IDalitzEvent& evt)=0;
581  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
582 
583  virtual const DecayTree& exampleDecay()=0;
584  virtual std::string name() const{
585  return "SpinFactor4:SF_BtoTV0_TtoVP1_VtoP2P3_BASE("
586  + theDecay().oneLiner() + ")";
587  }
588 
589 };
590 
592 protected:
593  int _pol;
595 public:
596  virtual void printYourself(std::ostream& os=std::cout) const;
597  SF_BtoTV0_TtoVP1_VtoP2P3_P( const AssociatedDecayTree& theDecay,const int pol)
598  : SF_BtoTV0_TtoVP1_VtoP2P3_BASE(theDecay), _pol(pol){}
599 
601  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
602  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
603 
604  static const DecayTree& getExampleDecay();
605  virtual const DecayTree& exampleDecay();
606  virtual std::string name() const{
607  return "SpinFactor4:SF_SF_BtoTV0_TtoVP1_VtoP2P3_P("
608  + theDecay().oneLiner() + ")";
609  }
610  int getPolarisation() {return _pol;}
611 };
612 
613 
614 // ==========================================
615 // Spin Factor 12/13
616 
618 protected:
619  // static DecayTree* _exampleDecay;
621 
622  virtual bool parseTree(const DalitzEventPattern& pat);
623 
624 public:
625  virtual void printYourself(std::ostream& os=std::cout) const=0;
627  : SpinFactor(theDecay, 4), S(0), V(0){}
628 
630  virtual double getVal(IDalitzEvent& evt)=0;
631  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
632 
633  virtual const DecayTree& exampleDecay()=0;
634  virtual std::string name() const{
635  return "SpinFactor4:SF_BtoVP1_VtoV0S_StoP2P3_BASE("
636  + theDecay().oneLiner() + ")";
637  }
638 
639 };
640 
641 // Spin Factor 12/13
643 protected:
644  int _pol;
647 public:
648  virtual void printYourself(std::ostream& os=std::cout) const;
649  SF_BtoVP1_VtoV0S_StoP2P3( const AssociatedDecayTree& theDecay,const int pol, const bool is3body)
650  : SF_BtoVP1_VtoV0S_StoP2P3_BASE(theDecay), _pol(pol), _is3bodyDecay(is3body){}
651 
653  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
654  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
655 
656  static const DecayTree& getExampleDecay();
657  virtual const DecayTree& exampleDecay();
658  virtual std::string name() const{
659  return "SpinFactor4:SF_BtoVP1_VtoV0S_StoP2P3("
660  + theDecay().oneLiner() + ")";
661  }
662  int getPolarisation() {return _pol;}
663  bool is3bodyDecay() {return _is3bodyDecay;}
664 };
665 
666 // ==========================================
667 // Spin Factor 14
668 
670 protected:
671  // static DecayTree* _exampleDecay;
673 
674  virtual bool parseTree(const DalitzEventPattern& pat);
675 
676 public:
677  virtual void printYourself(std::ostream& os=std::cout) const=0;
679  : SpinFactor(theDecay, 4), V1(0), V2(0){}
680 
682  virtual double getVal(IDalitzEvent& evt)=0;
683  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
684 
685  virtual const DecayTree& exampleDecay()=0;
686  virtual std::string name() const{
687  return "SpinFactor4:SF_BtoV1P1_V1toV2V0_V2toP2P3_BASE("
688  + theDecay().oneLiner() + ")";
689  }
690 
691 };
692 
693 // Spin Factor 14
695 protected:
696  int _pol;
697  int _LS_s;
699 public:
700  virtual void printYourself(std::ostream& os=std::cout) const;
701  SF_BtoV1P1_V1toV2V0_V2toP2P3( const AssociatedDecayTree& theDecay,const int pol, const int LS_s=0)
702  : SF_BtoV1P1_V1toV2V0_V2toP2P3_BASE(theDecay), _pol(pol), _LS_s(LS_s){}
703 
705  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
706  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
707 
708  static const DecayTree& getExampleDecay();
709  virtual const DecayTree& exampleDecay();
710  virtual std::string name() const{
711  return "SpinFactor4:SF_BtoV1P1_V1toV2V0_V2toP2P3("
712  + theDecay().oneLiner() + ")";
713  }
714  int getPolarisation() {return _pol;}
715  int getLS_S() {return _LS_s;}
716 };
717 
718 
719 
720 // ==========================================
721 // Spin Factor 15/16
722 
724 protected:
725  // static DecayTree* _exampleDecay;
727 
728  virtual bool parseTree(const DalitzEventPattern& pat);
729 
730 public:
731  virtual void printYourself(std::ostream& os=std::cout) const=0;
733  : SpinFactor(theDecay, 4), A(0), V(0){}
734 
736  virtual double getVal(IDalitzEvent& evt)=0;
737  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
738 
739  virtual const DecayTree& exampleDecay()=0;
740  virtual std::string name() const{
741  return "SpinFactor4:SF_BtoAP1_AtoVV0_VtoP2P3_BASE("
742  + theDecay().oneLiner() + ")";
743  }
744 
745 };
746 
747 // Spin Factor 15/16
749 protected:
750  int _pol;
753 public:
754  virtual void printYourself(std::ostream& os=std::cout) const;
755  SF_BtoAP1_AtoVV0_VtoP2P3( const AssociatedDecayTree& theDecay,const int pol, const bool is3body)
756  : SF_BtoAP1_AtoVV0_VtoP2P3_BASE(theDecay), _pol(pol), _is3bodyDecay(is3body){}
757 
759  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
760  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
761 
762  static const DecayTree& getExampleDecay();
763  virtual const DecayTree& exampleDecay();
764  virtual std::string name() const{
765  return "SpinFactor4:SF_BtoAP1_AtoVV0_VtoP2P3("
766  + theDecay().oneLiner() + ")";
767  }
768  int getPolarisation() {return _pol;}
769  bool is3bodyDecay() {return _is3bodyDecay;}
770 };
771 
772 
773 
774 // ==========================================
775 // Spin Factor 17
777 protected:
778  // static DecayTree* _exampleDecay;
780 
781  virtual bool parseTree(const DalitzEventPattern& pat);
782 
783 public:
784  virtual void printYourself(std::ostream& os=std::cout) const=0;
786  : SpinFactor(theDecay, 4), V1(0), V2(0){}
787 
789  virtual double getVal(IDalitzEvent& evt)=0;
790  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
791 
792  virtual const DecayTree& exampleDecay()=0;
793  virtual std::string name() const{
794  return "SpinFactor4:SF_BtoV1V2_V1toP1V0_V2toP2P3_BASE("
795  + theDecay().oneLiner() + ")";
796  }
797 
798 };
799 // Spin Factor 17
801 protected:
802  int _pol;
804 public:
805  virtual void printYourself(std::ostream& os=std::cout) const;
806  SF_BtoV1V2_V1toP1V0_V2toP2P3( const AssociatedDecayTree& theDecay,const int pol)
807  : SF_BtoV1V2_V1toP1V0_V2toP2P3_BASE(theDecay), _pol(pol){}
808 
810  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
811  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
812 
813  static const DecayTree& getExampleDecay();
814  virtual const DecayTree& exampleDecay();
815  virtual std::string name() const{
816  return "SpinFactor4:SF_BtoV1V2_V1toP1V0_V2toP2P3("
817  + theDecay().oneLiner() + ")";
818  }
819  int getPolarisation() {return _pol;}
820 };
821 
822 // ==========================================
823 // Spin Factor 18
825 protected:
826  // static DecayTree* _exampleDecay;
828 
829  virtual bool parseTree(const DalitzEventPattern& pat);
830 
831 public:
832  virtual void printYourself(std::ostream& os=std::cout) const=0;
834  : SpinFactor(theDecay, 4), A(0), V(0){}
835 
837  virtual double getVal(IDalitzEvent& evt)=0;
838  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
839 
840  virtual const DecayTree& exampleDecay()=0;
841  virtual std::string name() const{
842  return "SpinFactor4:SF_BtoAV_AtoP1V0_VtoP2P3_BASE("
843  + theDecay().oneLiner() + ")";
844  }
845 
846 };
847 
848 // Spin Factor 18
850 protected:
851  int _pol;
853 public:
854  virtual void printYourself(std::ostream& os=std::cout) const;
855  SF_BtoAV_AtoP1V0_VtoP2P3( const AssociatedDecayTree& theDecay,const int pol)
856  : SF_BtoAV_AtoP1V0_VtoP2P3_BASE(theDecay), _pol(pol){}
857 
859  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
860  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
861 
862  static const DecayTree& getExampleDecay();
863  virtual const DecayTree& exampleDecay();
864  virtual std::string name() const{
865  return "SpinFactor4:SF_BtoAV_AtoP1V0_VtoP2P3("
866  + theDecay().oneLiner() + ")";
867  }
868  int getPolarisation() {return _pol;}
869 };
870 
872 protected:
873  int _pol;
875 public:
876  virtual void printYourself(std::ostream& os=std::cout) const;
877  SF_BtoAV_AtoP1V0_VtoP2P3_P( const AssociatedDecayTree& theDecay,const int pol)
878  : SF_BtoAV_AtoP1V0_VtoP2P3_BASE(theDecay), _pol(pol){}
879 
881  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
882  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
883 
884  static const DecayTree& getExampleDecay();
885  virtual const DecayTree& exampleDecay();
886  virtual std::string name() const{
887  return "SpinFactor4:SF_BtoAV_AtoP1V0_VtoP2P3_P("
888  + theDecay().oneLiner() + ")";
889  }
890  int getPolarisation() {return _pol;}
891 };
892 
894 protected:
895  int _pol;
897 public:
898  virtual void printYourself(std::ostream& os=std::cout) const;
899  SF_BtoAV_AtoP1V0_VtoP2P3_D( const AssociatedDecayTree& theDecay,const int pol)
900  : SF_BtoAV_AtoP1V0_VtoP2P3_BASE(theDecay), _pol(pol){}
901 
903  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
904  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
905 
906  static const DecayTree& getExampleDecay();
907  virtual const DecayTree& exampleDecay();
908  virtual std::string name() const{
909  return "SpinFactor4:SF_BtoAV_AtoP1V0_VtoP2P3_D("
910  + theDecay().oneLiner() + ")";
911  }
912  int getPolarisation() {return _pol;}
913 };
914 
915 // ==========================================
916 // Spin Factor 19
918 protected:
919  // static DecayTree* _exampleDecay;
921 
922  virtual bool parseTree(const DalitzEventPattern& pat);
923 
924 public:
925  virtual void printYourself(std::ostream& os=std::cout) const=0;
927  : SpinFactor(theDecay, 4), A(0), S(0){}
928 
930  virtual double getVal(IDalitzEvent& evt)=0;
931  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
932 
933  virtual const DecayTree& exampleDecay()=0;
934  virtual std::string name() const{
935  return "SpinFactor4:SF_BtoAS_AtoP1V0_StoP2P3_BASE("
936  + theDecay().oneLiner() + ")";
937  }
938 
939 };
940 
941 // Spin Factor 19
943 protected:
944  int _pol;
946 public:
947  virtual void printYourself(std::ostream& os=std::cout) const;
948  SF_BtoAS_AtoP1V0_StoP2P3( const AssociatedDecayTree& theDecay,const int pol)
949  : SF_BtoAS_AtoP1V0_StoP2P3_BASE(theDecay), _pol(pol){}
950 
952  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
953  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
954 
955  static const DecayTree& getExampleDecay();
956  virtual const DecayTree& exampleDecay();
957  virtual std::string name() const{
958  return "SpinFactor4:SF_BtoAS_AtoP1V0_StoP2P3("
959  + theDecay().oneLiner() + ")";
960  }
961  int getPolarisation() {return _pol;}
962 };
963 
964 // ==========================================
965 // Spin Factor 20
967 protected:
968  // static DecayTree* _exampleDecay;
970 
971  virtual bool parseTree(const DalitzEventPattern& pat);
972 
973 public:
974  virtual void printYourself(std::ostream& os=std::cout) const=0;
976  : SpinFactor(theDecay, 4), P(0), S(0){}
977 
979  virtual double getVal(IDalitzEvent& evt)=0;
980  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
981 
982  virtual const DecayTree& exampleDecay()=0;
983  virtual std::string name() const{
984  return "SpinFactor4:SF_BtoPS_PtoP1V0_StoP2P3_BASE("
985  + theDecay().oneLiner() + ")";
986  }
987 
988 };
989 
990 // Spin Factor 20
992 protected:
993  int _pol;
995 public:
996  virtual void printYourself(std::ostream& os=std::cout) const;
997  SF_BtoPS_PtoP1V0_StoP2P3( const AssociatedDecayTree& theDecay,const int pol)
998  : SF_BtoPS_PtoP1V0_StoP2P3_BASE(theDecay), _pol(pol){}
999 
1001  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1002  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1003 
1004  static const DecayTree& getExampleDecay();
1005  virtual const DecayTree& exampleDecay();
1006  virtual std::string name() const{
1007  return "SpinFactor4:SF_BtoPS_PtoP1V0_StoP2P3("
1008  + theDecay().oneLiner() + ")";
1009  }
1010  int getPolarisation() {return _pol;}
1011 };
1012 
1013 
1014 // ==========================================
1015 // Spin Factor 21
1017 protected:
1018  // static DecayTree* _exampleDecay;
1020 
1021  virtual bool parseTree(const DalitzEventPattern& pat);
1022 
1023 public:
1024  virtual void printYourself(std::ostream& os=std::cout) const=0;
1026  : SpinFactor(theDecay, 4), P(0), V(0){}
1027 
1029  virtual double getVal(IDalitzEvent& evt)=0;
1030  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1031 
1032  virtual const DecayTree& exampleDecay()=0;
1033  virtual std::string name() const{
1034  return "SpinFactor4:SF_BtoPV_PtoP1V0_VtoP2P3_BASE("
1035  + theDecay().oneLiner() + ")";
1036  }
1037 
1038 };
1039 
1041 protected:
1042  int _pol;
1044 public:
1045  virtual void printYourself(std::ostream& os=std::cout) const;
1046  SF_BtoPV_PtoP1V0_VtoP2P3( const AssociatedDecayTree& theDecay,const int pol)
1047  : SF_BtoPV_PtoP1V0_VtoP2P3_BASE(theDecay), _pol(pol){}
1048 
1050  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1051  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1052 
1053  static const DecayTree& getExampleDecay();
1054  virtual const DecayTree& exampleDecay();
1055  virtual std::string name() const{
1056  return "SpinFactor4:SF_BtoPV_PtoP1V0_VtoP2P3("
1057  + theDecay().oneLiner() + ")";
1058  }
1059  int getPolarisation() {return _pol;}
1060 };
1061 
1062 // ==========================================
1063 // Spin Factor 22
1065 protected:
1066  // static DecayTree* _exampleDecay;
1068 
1069  virtual bool parseTree(const DalitzEventPattern& pat);
1070 
1071 public:
1072  virtual void printYourself(std::ostream& os=std::cout) const=0;
1074  : SpinFactor(theDecay, 4), P(0), S(0){}
1075 
1077  virtual double getVal(IDalitzEvent& evt)=0;
1078  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1079 
1080  virtual const DecayTree& exampleDecay()=0;
1081  virtual std::string name() const{
1082  return "SpinFactor4:SF_BtoPV0_PtoS_StoP2P3_BASE("
1083  + theDecay().oneLiner() + ")";
1084  }
1085 
1086 };
1087 
1089 protected:
1090  int _pol;
1092 public:
1093  virtual void printYourself(std::ostream& os=std::cout) const;
1094  SF_BtoPV0_PtoS_StoP2P3( const AssociatedDecayTree& theDecay,const int pol)
1095  : SF_BtoPV0_PtoS_StoP2P3_BASE(theDecay), _pol(pol){}
1096 
1098  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1099  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1100 
1101  static const DecayTree& getExampleDecay();
1102  virtual const DecayTree& exampleDecay();
1103  virtual std::string name() const{
1104  return "SpinFactor4:SF_BtoPV0_PtoS_StoP2P3("
1105  + theDecay().oneLiner() + ")";
1106  }
1107  int getPolarisation() {return _pol;}
1108 };
1109 
1110 // ==========================================
1111 // Spin Factor 23
1112 
1114 protected:
1115  // static DecayTree* _exampleDecay;
1117 
1118  virtual bool parseTree(const DalitzEventPattern& pat);
1119 
1120 public:
1121  virtual void printYourself(std::ostream& os=std::cout) const=0;
1123  : SpinFactor(theDecay, 4)
1124  , A(0), V(0)
1125  {
1126  //if( ! parseTree(const DalitzEventPattern& pat)){
1127  // throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3_BASE";
1128  //}
1129  //printYourself();
1130  }
1131 
1133  virtual double getVal(IDalitzEvent& evt)=0;
1134  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1135 
1136  virtual const DecayTree& exampleDecay()=0;
1137  virtual std::string name() const{
1138  return "SpinFactor4:SF_BtoVP1_VtoAP2_AtoV0P3_BASE("
1139  + theDecay().oneLiner() + ")";
1140  }
1141 
1142 };
1143 
1144 
1146  //int _pol;
1147 protected:
1148  const int _pol;
1150  //static int _pol;
1151 public:
1152  virtual void printYourself(std::ostream& os=std::cout) const;
1153  SF_BtoVP1_VtoAP2_AtoV0P3(const AssociatedDecayTree& theDecay, const int pol)
1154  : SF_BtoVP1_VtoAP2_AtoV0P3_BASE(theDecay), _pol(pol)
1155  {
1156  // if( ! parseTree(const DalitzEventPattern& pat)){
1157  //throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3";
1158  // }
1159  // _pol=pol;
1160  // printYourself();
1161  }
1162 
1164  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1165  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1166 
1167  static const DecayTree& getExampleDecay();
1168  virtual const DecayTree& exampleDecay();
1169  virtual std::string name() const{
1170  return "SpinFactor4:SF_BtoVP1_VtoAP2_AtoV0P3("
1171  + theDecay().oneLiner() + ")";
1172  }
1173  int getPolarisation() {return _pol;}
1174 
1175 
1176 };
1177 
1178 // ==========================================
1179 // Spin Factor 24
1180 
1182 protected:
1183  // static DecayTree* _exampleDecay;
1185 
1186  virtual bool parseTree(const DalitzEventPattern& pat);
1187 
1188 public:
1189  virtual void printYourself(std::ostream& os=std::cout) const=0;
1191  : SpinFactor(theDecay, 4)
1192  , V(0), S(0)
1193  {
1194  //if( ! parseTree(const DalitzEventPattern& pat)){
1195  // throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3_BASE";
1196  //}
1197  //printYourself();
1198  }
1199 
1201  virtual double getVal(IDalitzEvent& evt)=0;
1202  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1203 
1204  virtual const DecayTree& exampleDecay()=0;
1205  virtual std::string name() const{
1206  return "SpinFactor4:SF_BtoVP1_VtoSV0_StoP2P3_BASE("
1207  + theDecay().oneLiner() + ")";
1208  }
1209 
1210 };
1211 
1212 
1214  //int _pol;
1215 protected:
1216  const int _pol;
1218  //static int _pol;
1219 public:
1220  virtual void printYourself(std::ostream& os=std::cout) const;
1221  SF_BtoVP1_VtoSV0_StoP2P3(const AssociatedDecayTree& theDecay, const int pol)
1222  : SF_BtoVP1_VtoSV0_StoP2P3_BASE(theDecay), _pol(pol)
1223  {
1224  // if( ! parseTree(const DalitzEventPattern& pat)){
1225  //throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3";
1226  // }
1227  // _pol=pol;
1228  // printYourself();
1229  }
1230 
1232  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1233  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1234 
1235  static const DecayTree& getExampleDecay();
1236  virtual const DecayTree& exampleDecay();
1237  virtual std::string name() const{
1238  return "SpinFactor4:SF_BtoVP1_VtoSV0_StoP2P3("
1239  + theDecay().oneLiner() + ")";
1240  }
1241  int getPolarisation() {return _pol;}
1242 
1243 
1244 };
1245 
1246 
1247 // ==========================================
1248 // Spin Factor 25
1249 
1251 protected:
1252  // static DecayTree* _exampleDecay;
1254 
1255  virtual bool parseTree(const DalitzEventPattern& pat);
1256 
1257 public:
1258  virtual void printYourself(std::ostream& os=std::cout) const=0;
1260  : SpinFactor(theDecay, 4)
1261  , V(0), P(0)
1262  {
1263  //if( ! parseTree(const DalitzEventPattern& pat)){
1264  // throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3_BASE";
1265  //}
1266  //printYourself();
1267  }
1268 
1270  virtual double getVal(IDalitzEvent& evt)=0;
1271  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1272 
1273  virtual const DecayTree& exampleDecay()=0;
1274  virtual std::string name() const{
1275  return "SpinFactor4:SF_BtoPV0_PtoP1V1_V1toP2P3_BASE("
1276  + theDecay().oneLiner() + ")";
1277  }
1278 
1279 };
1280 
1281 
1283  //int _pol;
1284 protected:
1285  const int _pol;
1287  //static int _pol;
1288 public:
1289  virtual void printYourself(std::ostream& os=std::cout) const;
1290  SF_BtoPV0_PtoP1V1_V1toP2P3(const AssociatedDecayTree& theDecay, const int pol)
1291  : SF_BtoPV0_PtoP1V1_V1toP2P3_BASE(theDecay), _pol(pol)
1292  {
1293  // if( ! parseTree(const DalitzEventPattern& pat)){
1294  //throw "error in parseTree in constructor of SF_BtoAV0_AtoVP1_VtoP2P3";
1295  // }
1296  // _pol=pol;
1297  // printYourself();
1298  }
1299 
1301  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1302  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1303 
1304  static const DecayTree& getExampleDecay();
1305  virtual const DecayTree& exampleDecay();
1306  virtual std::string name() const{
1307  return "SpinFactor4:SF_BtoPV0_PtoP1V1_V1toP2P3("
1308  + theDecay().oneLiner() + ")";
1309  }
1310  int getPolarisation() {return _pol;}
1311 
1312 
1313 };
1314 
1315 // ==========================================
1316 
1318 protected:
1320 
1321  virtual bool parseTree(const DalitzEventPattern& pat);
1322 
1323 public:
1324  virtual void printYourself(std::ostream& os=std::cout) const=0;
1326  : SpinFactor(theDecay, 4)
1327  , V(0), S(0)
1328  {
1329  }
1330 
1332  virtual double getVal(IDalitzEvent& evt)=0;
1333  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1334 
1335  virtual const DecayTree& exampleDecay()=0;
1336  virtual std::string name() const{
1337  return "SF_BtoSP1_StoVV0_VtoP2P3_BASE("
1338  + theDecay().oneLiner() + ")";
1339  }
1340 
1341 };
1342 
1344 protected:
1345  const int _pol;
1347 public:
1348  virtual void printYourself(std::ostream& os=std::cout) const;
1349  SF_BtoSP1_StoVV0_VtoP2P3(const AssociatedDecayTree& theDecay, const int pol)
1350  : SF_BtoSP1_StoVV0_VtoP2P3_BASE(theDecay), _pol(pol)
1351  {
1352  }
1353 
1355  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1356  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1357 
1358  static const DecayTree& getExampleDecay();
1359  virtual const DecayTree& exampleDecay();
1360  virtual std::string name() const{
1361  return "SpinFactor4:SF_BtoSP1_StoVV0_VtoP2P3("
1362  + theDecay().oneLiner() + ")";
1363  }
1364  int getPolarisation() {return _pol;}
1365 };
1366 
1367 // ==========================================
1368 
1370 protected:
1372 
1373  virtual bool parseTree(const DalitzEventPattern& pat);
1374 
1375 public:
1376  virtual void printYourself(std::ostream& os=std::cout) const=0;
1378  : SpinFactor(theDecay, 4)
1379  , V(0), P(0)
1380  {
1381  }
1382 
1384  virtual double getVal(IDalitzEvent& evt)=0;
1385  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1386 
1387  virtual const DecayTree& exampleDecay()=0;
1388  virtual std::string name() const{
1389  return "SF_BtoPP1_PtoVV0_VtoP2P3_BASE("
1390  + theDecay().oneLiner() + ")";
1391  }
1392 
1393 };
1394 
1396 protected:
1397  const int _pol;
1399 public:
1400  virtual void printYourself(std::ostream& os=std::cout) const;
1401  SF_BtoPP1_PtoVV0_VtoP2P3(const AssociatedDecayTree& theDecay, const int pol)
1402  : SF_BtoPP1_PtoVV0_VtoP2P3_BASE(theDecay), _pol(pol)
1403  {
1404  }
1405 
1407  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1408  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1409 
1410  static const DecayTree& getExampleDecay();
1411  virtual const DecayTree& exampleDecay();
1412  virtual std::string name() const{
1413  return "SpinFactor4:SF_BtoPP1_PtoVV0_VtoP2P3("
1414  + theDecay().oneLiner() + ")";
1415  }
1416  int getPolarisation() {return _pol;}
1417 };
1418 
1419 // ==========================================
1420 
1422 protected:
1424 
1425  virtual bool parseTree(const DalitzEventPattern& pat);
1426 
1427 public:
1428  virtual void printYourself(std::ostream& os=std::cout) const=0;
1430  : SpinFactor(theDecay, 4)
1431  , T(0), V(0)
1432  {
1433  }
1434 
1436  virtual double getVal(IDalitzEvent& evt)=0;
1437  virtual std::complex<double> getNewVal(IDalitzEvent& evt)=0;
1438 
1439  virtual const DecayTree& exampleDecay()=0;
1440  virtual std::string name() const{
1441  return "SF_BtoVP1_VtoTV0_TtoP2P3_BASE("
1442  + theDecay().oneLiner() + ")";
1443  }
1444 
1445 };
1446 
1448 protected:
1449  const int _pol;
1451 public:
1452  virtual void printYourself(std::ostream& os=std::cout) const;
1453  SF_BtoVP1_VtoTV0_TtoP2P3(const AssociatedDecayTree& theDecay, const int pol)
1454  : SF_BtoVP1_VtoTV0_TtoP2P3_BASE(theDecay), _pol(pol)
1455  {
1456  }
1457 
1459  virtual double getVal(IDalitzEvent& evt){return getNewVal(evt).real();}
1460  virtual std::complex<double> getNewVal(IDalitzEvent& evt);
1461 
1462  static const DecayTree& getExampleDecay();
1463  virtual const DecayTree& exampleDecay();
1464  virtual std::string name() const{
1465  return "SpinFactor4:SF_BtoVP1_VtoTV0_TtoP2P3("
1466  + theDecay().oneLiner() + ")";
1467  }
1468  int getPolarisation() {return _pol;}
1469 };
1470 
1471 
1472 #endif
1473 //
MINT::const_counted_ptr< AssociatedDecayTree > S
SF_BtoAV0_AtoVP1_VtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoPV0_PtoS_StoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoAV0_AtoVP1_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoV1V0_V1toV2P1_V2toP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoAP1_AtoVV0_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
virtual std::string name() const
virtual std::string name() const
SF_BtoVP1_VtoV0S_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoV1P1_V1toV2V0_V2toP2P3(const AssociatedDecayTree &theDecay, const int pol, const int LS_s=0)
SF_BtoV1V0_V1toV2P1_V2toP2P3(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoV1P1_V1toV2V0_V2toP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual double getVal(IDalitzEvent &evt)
SF_BtoPP1_PtoVV0_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoV1V2_V1toP1V0_V2toP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoPS_PtoP1V0_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoAV0_AtoVP1Dwave_VtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoAV0_AtoVP1_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_BtoAV0_AtoSP1_StoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
SF_BtoV1V2_V1toP1V0_V2toP2P3(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoAV_AtoP1V0_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoAS_AtoP1V0_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoSP1_StoVV0_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual std::string name() const
SF_BtoAV0_AtoSP1_StoP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
SF_BtoPseudoTV0_PseudoTtoTP1_TtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
virtual std::string name() const
MINT::const_counted_ptr< AssociatedDecayTree > V
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual double getVal(IDalitzEvent &evt)
SF_BtoPseudoTV0_PseudoTtoSP1_StoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoVP1_VtoAP2_AtoV0P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoPV_PtoP1V0_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
SF_BtoVP1_VtoSV0_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoAV0_AtoSP1_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
SF_BtoAV_AtoP1V0_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoPseudoTV0_PseudoTtoSP1_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
MINT::const_counted_ptr< AssociatedDecayTree > S
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > S
virtual double getVal(IDalitzEvent &evt)
SF_BtoAV0_AtoSP1_StoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual std::string name() const
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual double getVal(IDalitzEvent &evt)
SF_BtoVP1_VtoTV0_TtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > T
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_BtoAS_AtoP1V0_StoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
SF_BtoPseudoTV0_PseudoTtoVP1_VtoP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
SF_BtoTV0_TtoVP1_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
SF_BtoPV_PtoP1V0_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
virtual std::string name() const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoPseudoTV0_PseudoTtoTP1_TtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_BtoVP1_VtoTV0_TtoP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
MINT::const_counted_ptr< AssociatedDecayTree > S
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_BtoAV0_AtoVP1Dwave_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual std::string name() const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoAV_AtoP1V0_VtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoV1V0_V1toV2P1_V2toP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoTV0_TtoVP1_VtoP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
virtual std::string name() const
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
SF_BtoPV0_PtoS_StoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoAV_AtoP1V0_VtoP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V
SF_BtoSP1_StoVV0_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
SF_BtoPV0_PtoP1V1_V1toP2P3(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual std::string name() const
virtual double getVal(IDalitzEvent &evt)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
SF_BtoPP1_PtoVV0_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoAP1_AtoVV0_VtoP2P3(const AssociatedDecayTree &theDecay, const int pol, const bool is3body)
SF_BtoV1V0_V1toV2P1_V2toP2P3_P(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoPS_PtoP1V0_StoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > V2
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
MINT::const_counted_ptr< AssociatedDecayTree > V2
SF_BtoVP1_VtoSV0_StoP2P3(const AssociatedDecayTree &theDecay, const int pol)
virtual double getVal(IDalitzEvent &evt)
virtual std::string name() const
SF_BtoVP1_VtoAP2_AtoV0P3(const AssociatedDecayTree &theDecay, const int pol)
virtual std::string name() const
virtual std::string name() const
SF_BtoPV0_PtoP1V1_V1toP2P3_BASE(const AssociatedDecayTree &theDecay)
virtual std::string name() const
SF_BtoAV0_AtoVP1_VtoP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
MINT::const_counted_ptr< AssociatedDecayTree > S
MINT::const_counted_ptr< AssociatedDecayTree > V2
SF_BtoAV0_AtoVP1Dwave_VtoP2P3_D(const AssociatedDecayTree &theDecay, const int pol)
SF_BtoVP1_VtoV0S_StoP2P3(const AssociatedDecayTree &theDecay, const int pol, const bool is3body)