]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STARLIGHT/starlight/src/.svn/text-base/upcevent.cpp.svn-base
STARLIGHT code and interface
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / src / .svn / text-base / upcevent.cpp.svn-base
1 ///////////////////////////////////////////////////////////////////////////
2 //
3 //    Copyright 2010
4 //
5 //    This file is part of starlight.
6 //
7 //    starlight 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 //    starlight 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 starlight. If not, see <http://www.gnu.org/licenses/>.
19 //
20 ///////////////////////////////////////////////////////////////////////////
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 //
29 //
30 //
31 ///////////////////////////////////////////////////////////////////////////
32
33
34 #include "upcevent.h"
35
36
37 upcEvent::upcEvent() :
38         _NTracks(0)
39         ,_particles(0)
40         ,_vertices(0)
41 { }
42
43 upcEvent::upcEvent(starlightConstants::event &ev) :
44         _NTracks(0)
45         ,_particles(0)
46         ,_vertices(0)
47 {
48   for(int i = 0; i < ev._numberOfTracks; i++)
49     {
50       starlightParticle p(
51                           ev.px[i], 
52                           ev.py[i], 
53                           ev.pz[i], 
54                           starlightConstants::UNKNOWN, 
55                           starlightConstants::UNKNOWN, 
56                           ev._fsParticle[i],
57                           ev._charge[i]
58                           );
59       addParticle(p);
60     }
61 }
62
63 upcEvent::~upcEvent()
64 { }
65
66
67 upcEvent& upcEvent::operator=(const upcEvent& rhs)
68 {
69
70   if(this != &rhs)
71   {
72     this->_particles = rhs._particles;
73     this->_vertices = rhs._vertices;
74     this->_gammaEnergies = rhs._gammaEnergies;
75   }
76   return *this;
77 }
78
79 upcEvent& upcEvent::operator+(const upcEvent& ev)
80 {
81   for(unsigned int n = 0; n < ev._particles.size(); n++)
82   {
83     this->_particles.push_back(ev._particles.at(n));
84   }
85   for(unsigned int n = 0; n < ev._vertices.size(); n++)
86   {
87     this->_vertices.push_back(ev._vertices.at(n));
88   }
89  for(unsigned int n = 0; n < ev._gammaEnergies.size(); n++)
90   {
91     this->_gammaEnergies.push_back(ev._gammaEnergies.at(n));
92   }
93   return *this;
94 }
95
96 void upcEvent::boost(double rapidity)
97 {
98     vector3 boostVector(0, 0, tanh(rapidity));
99     std::vector<starlightParticle>::iterator part = _particles.begin();
100       
101     for (part = _particles.begin(); part != _particles.end(); part++)
102     {
103       (*part).Boost(boostVector);
104     }
105 }