]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STARLIGHT/starlight/src/upcevent.cpp
STARLIGHT code and interface
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / src / upcevent.cpp
diff --git a/STARLIGHT/starlight/src/upcevent.cpp b/STARLIGHT/starlight/src/upcevent.cpp
new file mode 100644 (file)
index 0000000..0c84860
--- /dev/null
@@ -0,0 +1,105 @@
+///////////////////////////////////////////////////////////////////////////
+//
+//    Copyright 2010
+//
+//    This file is part of starlight.
+//
+//    starlight is free software: you can redistribute it and/or modify
+//    it under the terms of the GNU General Public License as published by
+//    the Free Software Foundation, either version 3 of the License, or
+//    (at your option) any later version.
+//
+//    starlight is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+//    GNU General Public License for more details.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with starlight. If not, see <http://www.gnu.org/licenses/>.
+//
+///////////////////////////////////////////////////////////////////////////
+//
+// File and Version Information:
+// $Rev:: 108                         $: revision of last commit
+// $Author:: jnystrand                $: author of last commit
+// $Date:: 2012-12-20 20:55:01 +0100 #$: date of last commit
+//
+// Description:
+//
+//
+//
+///////////////////////////////////////////////////////////////////////////
+
+
+#include "upcevent.h"
+
+
+upcEvent::upcEvent() :
+        _NTracks(0)
+        ,_particles(0)
+        ,_vertices(0)
+{ }
+
+upcEvent::upcEvent(starlightConstants::event &ev) :
+        _NTracks(0)
+        ,_particles(0)
+        ,_vertices(0)
+{
+  for(int i = 0; i < ev._numberOfTracks; i++)
+    {
+      starlightParticle p(
+                         ev.px[i], 
+                         ev.py[i], 
+                         ev.pz[i], 
+                         starlightConstants::UNKNOWN, 
+                         starlightConstants::UNKNOWN, 
+                         ev._fsParticle[i],
+                         ev._charge[i]
+                         );
+      addParticle(p);
+    }
+}
+
+upcEvent::~upcEvent()
+{ }
+
+
+upcEvent& upcEvent::operator=(const upcEvent& rhs)
+{
+
+  if(this != &rhs)
+  {
+    this->_particles = rhs._particles;
+    this->_vertices = rhs._vertices;
+    this->_gammaEnergies = rhs._gammaEnergies;
+  }
+  return *this;
+}
+
+upcEvent& upcEvent::operator+(const upcEvent& ev)
+{
+  for(unsigned int n = 0; n < ev._particles.size(); n++)
+  {
+    this->_particles.push_back(ev._particles.at(n));
+  }
+  for(unsigned int n = 0; n < ev._vertices.size(); n++)
+  {
+    this->_vertices.push_back(ev._vertices.at(n));
+  }
+ for(unsigned int n = 0; n < ev._gammaEnergies.size(); n++)
+  {
+    this->_gammaEnergies.push_back(ev._gammaEnergies.at(n));
+  }
+  return *this;
+}
+
+void upcEvent::boost(double rapidity)
+{
+    vector3 boostVector(0, 0, tanh(rapidity));
+    std::vector<starlightParticle>::iterator part = _particles.begin();
+      
+    for (part = _particles.begin(); part != _particles.end(); part++)
+    {
+      (*part).Boost(boostVector);
+    }
+}