ROOTPWA
productionVertex.h
Go to the documentation of this file.
1 
2 //
3 // Copyright 2010
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 // $Rev:: $: revision of last commit
24 // $Author:: $: author of last commit
25 // $Date:: $: date of last commit
26 //
27 // Description:
28 // production vertex virtual base class
29 //
30 //
31 // Author List:
32 // Boris Grube TUM (original author)
33 //
34 //
35 //-------------------------------------------------------------------------
36 
37 
38 #ifndef PRODUCTIONVERTEX_H
39 #define PRODUCTIONVERTEX_H
40 
41 
42 #include <complex>
43 
44 #include <boost/shared_ptr.hpp>
45 
46 #include "TVector3.h"
47 
48 #include "interactionVertex.h"
49 
50 
51 class TClonesArray;
52 
53 
54 namespace rpwa {
55 
56 
58  typedef boost::shared_ptr<productionVertex> productionVertexPtr;
59 
60 
62 
63  public:
64 
66  virtual ~productionVertex();
67 
68  // production specific accessors
69  virtual const TLorentzVector& referenceLzVec() const = 0;
70  virtual const particlePtr& XParticle () const = 0;
71 
72  virtual std::complex<double> productionAmp() const { return 1; }
73 
74  virtual void setXFlavorQN() = 0;
75 
76  virtual bool initKinematicsData(const TClonesArray& names) = 0;
77  virtual bool readKinematicsData(const TClonesArray& momenta) = 0;
78 
79  virtual bool revertMomenta() = 0;
80 
81  virtual std::string name() const { return "productionVertex"; }
82 
83  static bool debug() { return _debug; }
84  static void setDebug(const bool debug = true) { _debug = debug; }
85 
86 
87  private:
88 
89  static bool _debug;
90 
91  };
92 
93 
94 } // namespace rpwa
95 
96 
97 #endif // PRODUCTIONVERTEX_H