ROOTPWA
Tgamp.h
Go to the documentation of this file.
1 
2 //
3 // Copyright 2009 Sebastian Neubert
4 //
5 // This file is part of rootpwa
6 //
7 // rootpwa is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // rootpwa is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with rootpwa. If not, see <http://www.gnu.org/licenses/>.
19 //
21 //-----------------------------------------------------------
22 // File and Version Information:
23 // $Id$
24 //
25 // Description:
26 //
27 //
28 //
29 // Author List:
30 // Sebastian Neubert TUM (original author)
31 //
32 //
33 //-----------------------------------------------------------
34 
35 
36 #ifndef TGAMP_HH
37 #define TGAMP_HH
38 
39 
40 #include <complex>
41 #include <vector>
42 #include <iostream>
43 #include <string>
44 #include <lorentz.h>
45 
46 class event;
47 
48 
49 class Tgamp {
50 
51 public:
52 
53  Tgamp(const std::string& pdgTableFileName = "");
54  virtual ~Tgamp();
55 
56  std::complex<double> Amp(const std::string& keyFileName,
57  event& ev) const;
58  std::complex<double> Amp(const unsigned int iKey,
59  event& ev) const;
60  std::vector<std::complex<double> > Amp(const std::string& keyFileName,
61  std::istream& eventData,
62  const bool testMode = false) const;
63  std::vector<std::complex<double> > Amp(const unsigned int iKey,
64  std::istream& eventData) const;
65 
66  void addWave(const std::string& keyFileName) { _keyFileNames.push_back(keyFileName); }
67 
68  // performs reflection through production plane
69  static event reflectEvent (const event& evIn);
70  static event mirrorEvent (const event& evIn);
71  void reflect (const bool flag = true) { _reflect = flag; }
72  void mirror (const bool flag = true) { _mirror = true; }
73  void suppressOutput(const bool flag = true) { _suppressOutput = flag; }
74 
75 private:
76 
77  std::vector<std::string> _keyFileNames;
78  bool _reflect; // if true events are reflected through production plane
79  bool _mirror; // if true events are parity-mirrored
80  bool _suppressOutput; // if true output from keyparse() is suppressed
81 
82 
83  static lorentzTransform toGottfriedJackson(const event& ev);
84 
85 };
86 
87 
88 #endif // TGAMP_HH
89 
90 
91 //--------------------------------------------------------------
92 // $Log$
93 //--------------------------------------------------------------