diff --git a/optimizer/Comm/CommSplitter.h b/optimizer/Comm/CommSplitter.h
index dd223dced1e2246632ac8646fa070ec4a9ce19d0..4e891598e6a8f3de0ef3999163ff3c397080294d 100644
--- a/optimizer/Comm/CommSplitter.h
+++ b/optimizer/Comm/CommSplitter.h
@@ -1,3 +1,37 @@
+//
+// Class CommSplitter
+//   Role assignment according to strategy (that might use hardware
+//   network information).
+//
+//   The CommSplitter splits the passed (usually MPI_COMM_WORLD) communicator
+//   into several comm groups using the colors provided by the splitting
+//   strategy.
+//   After construction each processor has an assigned role (optimizer, worker
+//   or pilot) and a set of communicators to send and receive tasks.
+//   The expected colors have the following meaning:
+//     - color[0] is shared by all my co-workers
+//     - color[1] is shared by the optimizer leader and the pilot
+//     - color[2] is shared by the worker leader and the pilot
+//     - color[3] is shared by all processors with the same role (used for
+//       broadcasts)
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __COMM_SPLITTER__
 #define __COMM_SPLITTER__
 
@@ -10,24 +44,6 @@
 
 //TODO: what is the performance difference between using MPI_COMM_WORLD and
 //      p2p communication vs. communicator groups??
-/**
- *  \brief Role assignment according to strategy (that might use hardware
- *         network information).
- *
- *  The CommSplitter splits the passed (usually MPI_COMM_WORLD) communicator
- *  into several comm groups using the colors provided by the splitting
- *  strategy.
- *  After construction each processor has an assigned role (optimizer, worker
- *  or pilot) and a set of communicators to send and receive tasks.
- *  The expected colors have the following meaning:
- *
- *    - color[0] is shared by all my co-workers
- *    - color[1] is shared by the optimizer leader and the pilot
- *    - color[2] is shared by the worker leader and the pilot
- *    - color[3] is shared by all processors with the same role (used for
- *      broadcasts)
- *
- */
 template< class Strategy_t >
 class CommSplitter : public Strategy_t {
 
diff --git a/optimizer/Comm/MasterGraph/NDimMesh.h b/optimizer/Comm/MasterGraph/NDimMesh.h
index b594c86c4fccb95f2d627319376e5a491fcd336e..3bcb2b19e28e0de6f0f259b71e761df2f5673795 100644
--- a/optimizer/Comm/MasterGraph/NDimMesh.h
+++ b/optimizer/Comm/MasterGraph/NDimMesh.h
@@ -1,3 +1,23 @@
+//
+// Class NDimMesh
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __NDIM_MESH__
 #define __NDIM_MESH__
 
diff --git a/optimizer/Comm/MasterGraph/NoMasterGraph.h b/optimizer/Comm/MasterGraph/NoMasterGraph.h
index dfbd37648145bac60b81c4b9d44e04db92b98fa9..9a6a235da8c7158f8cb306b23258e5417191dd39 100644
--- a/optimizer/Comm/MasterGraph/NoMasterGraph.h
+++ b/optimizer/Comm/MasterGraph/NoMasterGraph.h
@@ -1,9 +1,29 @@
+//
+// Class NoMasterGraph
+//   A simple empty master graph (no neighbors, every island works isolated).
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __NO_MASTER_GRAPH__
 #define __NO_MASTER_GRAPH__
 
 #include <set>
 
-/// A simple empty master graph (no neighbors, every island works isolated).
 template < class TopoDiscoveryStrategy_t >
 class NoMasterGraph : public TopoDiscoveryStrategy_t {
 
diff --git a/optimizer/Comm/MasterGraph/SocialNetworkGraph.h b/optimizer/Comm/MasterGraph/SocialNetworkGraph.h
index 70225420dd624343dd5d1121a53b4d8022b4768b..3294190d1f44c0a1e9e53cbc6f0af52289fb3ccd 100644
--- a/optimizer/Comm/MasterGraph/SocialNetworkGraph.h
+++ b/optimizer/Comm/MasterGraph/SocialNetworkGraph.h
@@ -1,3 +1,40 @@
+//
+// Class SocialNetworkGraph
+//   Modeling social graph (Cartesian neighbors plus additional random
+//   link) as underlaying master network.
+//
+//   @see MasterNode
+//
+//   Due to its nice rumor spreading properties this master network is mimicking
+//   a social network graph (augmented grid) and solution states are distributed
+//   in a rumor fashion.
+//
+//   Here, we use a simple mapping from processor ID's to 2D grid
+//   (determining neigborhood) assuming the total number of masters:
+//
+//      n_m = n_g * n_g
+//
+//   This is fine, because if we have topology info the masters are numbered
+//   in ascending order (done in comm splitter) and we can map them from 1D to
+//   2D by index calculations.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __SOCIAL_NETWORK_GRAPH__
 #define __SOCIAL_NETWORK_GRAPH__
 
@@ -7,25 +44,6 @@
 #include <boost/random/mersenne_twister.hpp>
 #include <boost/random/discrete_distribution.hpp>
 
-// Here, we use a simple mapping from processor ID's to 2D grid
-// (determining neigborhood) assuming the total number of masters:
-//
-//    n_m = n_g * n_g
-//
-// This is fine, because if we have topology info the masters are numbered
-// in ascending order (done in comm splitter) and we can map them from 1D to
-// 2D by index calculations.
-
-/**
- * \brief Modeling social graph (Cartesian neighbors plus additional random
- *        link) as underlaying master network.
- *
- * @see MasterNode
- *
- * Due to its nice rumor spreading properties this master network is mimicking
- * a social network graph (augmented grid) and solution states are distributed
- * in a rumor fashion.
- */
 template < class TopoDiscoveryStrategy_t >
 class SocialNetworkGraph : public TopoDiscoveryStrategy_t {
 
diff --git a/optimizer/Comm/MasterNode.h b/optimizer/Comm/MasterNode.h
index 295bd5b404a01dcbbe0bdcc599ff35376a3f4637..bdbff0cedb0c727ab3b2d171c935380c32561475 100644
--- a/optimizer/Comm/MasterNode.h
+++ b/optimizer/Comm/MasterNode.h
@@ -1,3 +1,33 @@
+//
+// Class MasterNode
+//   Implements a node in the network of all pilots, exposing store and
+//   collect operations on a specific set of neighbors.
+//
+//   Using the neighbor strategy a set of neighbors we collect solution state
+//   from (and they collect from us) is defined. Using this set of neighbors the
+//   solution states propagate throughout the network. The store and collect
+//   operations are implemented using one sided MPI communication methods
+//   (simulating shared memory).
+//   A revision number is used to prevent receiving previously collected
+//   solution states from neighbors.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __MASTER_NODE__
 #define __MASTER_NODE__
 
@@ -18,19 +48,6 @@
 
 //XXX: SolutionState_t must be serializable! (call
 //     SerializableSolutionState_t?)
-/**
- * \brief Implements a node in the network of all pilots, exposing store and
- *        collect operations on a specific set of neighbors.
- *
- * Using the neighbor strategy a set of neighbors we collect solution state
- * from (and they collect from us) is defined. Using this set of neighbors the
- * solution states propagate throughout the network. The store and collect
- * operations are implemented using one sided MPI communication methods
- * (simulating shared memory).
- * A revision number is used to prevent receiving previously collected
- * solution states from neighbors.
- *
- */
 template <
       class SolutionState_t
     , class NeighborStrategy_t
diff --git a/optimizer/Comm/types.h b/optimizer/Comm/types.h
index be9df1e42dc5dbe208fd9dd22821cd27d2ff17ff..64b6f5e518211114736184455bf41dca92b50829 100644
--- a/optimizer/Comm/types.h
+++ b/optimizer/Comm/types.h
@@ -1,3 +1,23 @@
+//
+// Types in namespace Comm
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __COMM_TYPES__
 #define __COMM_TYPES__
 
diff --git a/optimizer/Expression/Expression.h b/optimizer/Expression/Expression.h
index bb3be06ebf8b50025bc70306a14782dfdceee0c4..90ca052acc0128a5349a4879383dfd7858bb573c 100644
--- a/optimizer/Expression/Expression.h
+++ b/optimizer/Expression/Expression.h
@@ -1,3 +1,32 @@
+//
+// Class Expression
+//   Expression to be evaluated in the framework.
+//
+//   @see GlobalFunctions.h
+//
+//   This class uses the Boost Spirit parser to parse and evaluate string
+//   expressions (objectives or constraints).
+//   Custom functions called in the expression should be registered by the
+//   driver. A collection of C math default functions is always included.
+//   For constraints the operator type can be queried.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __EXPRESSION_H__
 #define __EXPRESSION_H__
 
@@ -62,16 +91,6 @@ namespace Expressions {
 
 #include "Expression/GlobalFunctions.h"
 
-/**
- *  \brief Expression to be evaluated in the framework.
- *  @see GlobalFunctions.h
- *
- *  This class uses the Boost Spirit parser to parse and evaluate string
- *  expressions (objectives or constraints).
- *  Custom functions called in the expression should be registered by the
- *  driver. A collection of C math default functions is always included.
- *  For constraints the operator type can be queried.
- */
 class Expression {
 
 public:
diff --git a/optimizer/Expression/FromFile.cpp b/optimizer/Expression/FromFile.cpp
index 12cbc5d6bbdd12cf523bfb5ee65985c44777efae..fc5f4fc8dbad84975a5971a2df2591f0be3db09d 100644
--- a/optimizer/Expression/FromFile.cpp
+++ b/optimizer/Expression/FromFile.cpp
@@ -1,3 +1,28 @@
+//
+// Struct FromFile
+//   Simple functor that reads vector data from a file. If the file contains
+//   more than one value the sum is returned.
+//   \f[
+//     result = \sum_{i=0}^n value_i
+//   \f]
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Expression/FromFile.h"
 
 /// reads a simple list of double values
diff --git a/optimizer/Expression/FromFile.h b/optimizer/Expression/FromFile.h
index 9d142352c8d51eac0b71c3cad8873101ac28441e..0f8f67a988b8101bcd34ba735b36f1e1a292372a 100644
--- a/optimizer/Expression/FromFile.h
+++ b/optimizer/Expression/FromFile.h
@@ -1,3 +1,28 @@
+//
+// Struct FromFile
+//   Simple functor that reads vector data from a file. If the file contains
+//   more than one value the sum is returned.
+//   \f[
+//     result = \sum_{i=0}^n value_i
+//   \f]
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __FROMFILE_H__
 #define __FROMFILE_H__
 
@@ -16,14 +41,6 @@
 #include "Util/OptPilotException.h"
 #include "Expression/Parser/function.hpp"
 
-
-/**
- *  Simple functor that reads vector data from a file. If the file contains
- *  more than one value the sum is returned.
- *  \f[
- *    result = \sum_{i=0}^n value_i
- *  \f]
- */
 struct FromFile {
 
     static const std::string name;
diff --git a/optimizer/Expression/GlobalFunctions.h b/optimizer/Expression/GlobalFunctions.h
index 6faccdba044d8be505a5ef8887539c304cf03e7b..b8d50bafb890e13f6b23a3482487e8ea1a6f01b4 100644
--- a/optimizer/Expression/GlobalFunctions.h
+++ b/optimizer/Expression/GlobalFunctions.h
@@ -1,3 +1,25 @@
+//
+// Namespace GlobalFunctions
+//   Defines multiple expressions to be evaluated in
+//   objectives.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __GLOBAL_FUNCTIONS_H__
 #define __GLOBAL_FUNCTIONS_H__
 
diff --git a/optimizer/Expression/ProbeVariable.h b/optimizer/Expression/ProbeVariable.h
index dbcfde3f988afd46b69b847fa19936f04f12d633..853c903cd6d2ba1bda5c6b05c5ff0256513010c7 100644
--- a/optimizer/Expression/ProbeVariable.h
+++ b/optimizer/Expression/ProbeVariable.h
@@ -1,3 +1,23 @@
+//
+// Struct ProbeVariable
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __PROBEVARIABLE_H__
 #define __PROBEVARIABLE_H__
 
diff --git a/optimizer/Expression/PythonExpr.h b/optimizer/Expression/PythonExpr.h
index ea01e9a3f252afbf181463fbbd94b7a84e56da89..40225967ca0b24e6b9ef9927d4e9adeac412415c 100644
--- a/optimizer/Expression/PythonExpr.h
+++ b/optimizer/Expression/PythonExpr.h
@@ -1,3 +1,37 @@
+//
+// Struct PythonExpression
+//   Execute a python script using all given arguments (except for the first
+//   being the script name) and return the value of the "result" variable in
+//   the python script.
+//   Expression arguments can be accessed in the Python script using the vector
+//   variable "arguments", like i.e. in file "test.py":
+//   \verbatim
+//      result = 2.0 * arguments[0]
+//    \endverbatim
+//   to double the value passed as second argument to the Python expression.
+//   For example the expression
+//   \verbatim
+//      EXPR="python("test.py", 15.0)";
+//    \endverbatim
+//   evaluates to a value of 30.0 (test.py contains the line shown above).
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __PYTHON_EXPR_H__
 #define __PYTHON_EXPR_H__
 
@@ -15,22 +49,6 @@
 
 using namespace boost::python;
 
-/**
- *  Execute a python script using all given arguments (except for the first
- *  being the script name) and return the value of the "result" variable in
- *  the python script.
- *  Expression arguments can be accessed in the Python script using the vector
- *  variable "arguments", like i.e. in file "test.py":
- *  \verbatim
-      result = 2.0 * arguments[0]
-    \endverbatim
- *  to double the value passed as second argument to the Python expression.
- *  For example the expression
- *  \verbatim
-      EXPR="python("test.py", 15.0)";
-    \endverbatim
- *  evaluates to a value of 30.0 (test.py contains the line shown above).
- */
 struct PythonExpression {
 
     Expressions::Result_t operator()(client::function::arguments_t args) {
diff --git a/optimizer/Expression/SDDSVariable.h b/optimizer/Expression/SDDSVariable.h
index 0222f0e64bbc1ffc8b66e1602acacc6b198682a7..12ad779eeec17010b576753216fd98a89b7a9654 100644
--- a/optimizer/Expression/SDDSVariable.h
+++ b/optimizer/Expression/SDDSVariable.h
@@ -1,3 +1,29 @@
+//
+// Struct SDDSVariable
+//   A simple expression to get SDDS (filename) value near a
+//   specific position (ref_val, default: spos) of a reference
+//   variable (ref_name) for a variable (var_name). Possible
+//   argument orders:
+//       args = [var_name, ref_val, filename]
+//       args = [var_name, ref_name, ref_val, filename]
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __SDDSVARIABLE_H__
 #define __SDDSVARIABLE_H__
 
@@ -13,14 +39,6 @@
 #include "Expression/Parser/function.hpp"
 
 
-/**
- *  A simple expression to get SDDS (filename) value near a
- *  specific position (ref_val, default: spos) of a reference
- *  variable (ref_name) for a variable (var_name). Possible
- *  argument orders:
- *      args = [var_name, ref_val, filename]
- *      args = [var_name, ref_name, ref_val, filename]
- */
 struct SDDSVariable {
 
     static const std::string name;
diff --git a/optimizer/Expression/SumErrSq.h b/optimizer/Expression/SumErrSq.h
index 583119577e81fc1b98e3786edbcb9125f4374474..fc18bf83e10aea4322ac471c09772b83726082d3 100644
--- a/optimizer/Expression/SumErrSq.h
+++ b/optimizer/Expression/SumErrSq.h
@@ -1,3 +1,29 @@
+//
+// Struct SumErrSq
+//  A simple expression computing the sum of all measurement errors (given as
+//  first and third argument) for a variable (second argument) according to
+//
+//  \f[
+//     result = \frac{1}{n} * \sqrt{\sum_{i=0}^n (measurement_i - value_i)^2}
+//  \f]
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __SUMERRSQ_H__
 #define __SUMERRSQ_H__
 
@@ -23,15 +49,7 @@ public:
     friend std::istream & operator>>(std::istream & stream, Measurement & measurement);
 };
 
-/**
- *  A simple expression computing the sum of all measurement errors (given as
- *  first and third argument) for a variable (second argument) according to
- *
- *  \f[
- *    result = \frac{1}{n} * \sqrt{\sum_{i=0}^n (measurement_i - value_i)^2}
- *  \f]
- *
- */
+
 struct SumErrSq {
 
     static const std::string name;
diff --git a/optimizer/Optimizer/EA/BlendCrossover.h b/optimizer/Optimizer/EA/BlendCrossover.h
index 43ed9255b3b44f1c445a4e61b8ae652213e62fb2..ebb19b66828660f345ab8363aa31eb906ab85d63 100644
--- a/optimizer/Optimizer/EA/BlendCrossover.h
+++ b/optimizer/Optimizer/EA/BlendCrossover.h
@@ -1,17 +1,35 @@
+//
+// Struct BlendCrossover
+//   BLX-alpha (interval schemata)
+//   Eshelman and Schaffer (1993)
+//   Pick random solution in interval
+//
+//     [ x_i^(1,t) - \alpha(x_i^(2,t) - x_i^(1,t)),
+//       x_i^(2,t) + \alpha((x_i^(2,t) - x_i^(1,t)) ]
+//
+//   at generation t.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 #include <cmath>
 
-/**
- *  BLX-alpha (interval schemata)
- *  Eshelman and Schaffer (1993)
- *  Pick random solution in interval
- *
- *    [ x_i^(1,t) - \alpha(x_i^(2,t) - x_i^(1,t)),
- *      x_i^(2,t) + \alpha((x_i^(2,t) - x_i^(1,t)) ]
- *
- *  at generation t.
- */
 
 template <class T> struct BlendCrossover
 {
diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.h b/optimizer/Optimizer/EA/FixedPisaNsga2.h
index f08211da802f03bac5536a6adaad999f89801e08..a26731c624fc5269549a6d1fd8141e79c0ddeb3e 100644
--- a/optimizer/Optimizer/EA/FixedPisaNsga2.h
+++ b/optimizer/Optimizer/EA/FixedPisaNsga2.h
@@ -1,3 +1,35 @@
+//
+// Class FixedPisaNsga2
+//   Implementing the Variator for the PISA state machine.
+//
+//   @see http://www.tik.ee.ethz.ch/pisa/
+//
+//   The convergence behavior of the optimizer can be steered in 3 ways,
+//   corresponding command line arguments are given in brackets:
+//     - limit the number of generations (maxGenerations),
+//     - specify a target hypervolume (expected-hypervol) and tolerance
+//       (epsilon)
+//     - specify a minimal hypervolume progress (conv-hvol-prog), relative to
+//       the last generation, ((prev - new)/prev) that has to be attained to
+//       continue optimizing.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __FIXED_PISA_NSGA2_H__
 #define __FIXED_PISA_NSGA2_H__
 
@@ -29,21 +61,7 @@
 
 #include "Util/Trace/Trace.h"
 
-/**
- *  \class FixedPisaNsga2
- *  \brief Implementing the Variator for the PISA state machine.
- *
- *  @see http://www.tik.ee.ethz.ch/pisa/
- *
- *  The convergence behavior of the optimizer can be steered in 3 ways,
- *  corresponding command line arguments are given in brackets:
- *    - limit the number of generations (maxGenerations),
- *    - specify a target hypervolume (expected-hypervol) and tolerance
- *      (epsilon)
- *    - specify a minimal hypervolume progress (conv-hvol-prog), relative to
- *      the last generation, ((prev - new)/prev) that has to be attained to
- *      continue optimizing.
- */
+
 template<
       template <class> class CrossoverOperator
     , template <class> class MutationOperator
diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
index 0fec7f514352601ccd82717d094f80ce484431d7..d0f3be0e3ff416ee9d9a92393386fd23e56fd7c5 100644
--- a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
+++ b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
@@ -1,3 +1,35 @@
+//
+// Class FixedPisaNsga2
+//   Implementing the Variator for the PISA state machine.
+//
+//   @see http://www.tik.ee.ethz.ch/pisa/
+//
+//   The convergence behavior of the optimizer can be steered in 3 ways,
+//   corresponding command line arguments are given in brackets:
+//     - limit the number of generations (maxGenerations),
+//     - specify a target hypervolume (expected-hypervol) and tolerance
+//       (epsilon)
+//     - specify a minimal hypervolume progress (conv-hvol-prog), relative to
+//       the last generation, ((prev - new)/prev) that has to be attained to
+//       continue optimizing.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <iostream>
 #include <sstream>
 #include <cmath>
diff --git a/optimizer/Optimizer/EA/IndependentBitMutation.h b/optimizer/Optimizer/EA/IndependentBitMutation.h
index d42ea64bf41c2c67d8a0f7b3aeb1f5bce362312d..ff40bbf251b830e2ca19d6a2c9f1b46fce0d297b 100644
--- a/optimizer/Optimizer/EA/IndependentBitMutation.h
+++ b/optimizer/Optimizer/EA/IndependentBitMutation.h
@@ -1,7 +1,27 @@
+//
+// Struct IndependentBitMutation
+//   Mutate each gene with probability p
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 
-/// Mutate each gene with probability p
 template <class T> struct IndependentBitMutation
 {
     void mutate(boost::shared_ptr<T> ind, CmdArguments_t args) {
diff --git a/optimizer/Optimizer/EA/Individual.h b/optimizer/Optimizer/EA/Individual.h
index 26a918ff920e0a80234086b6bc8781fd1051ef80..f5ea39138bc71512801d9ef77c2a2acd55962bb5 100644
--- a/optimizer/Optimizer/EA/Individual.h
+++ b/optimizer/Optimizer/EA/Individual.h
@@ -1,3 +1,27 @@
+//
+// Class Individual
+//   Structure for an individual in the population holding genes and objective
+//   values.
+//
+//   @see Types.h
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __INDIVIDUAL_H__
 #define __INDIVIDUAL_H__
 
@@ -11,13 +35,6 @@
 
 #include "boost/smart_ptr.hpp"
 
-/**
- * \class Individual
- *  Structure for an individual in the population holding genes and objective
- *  values.
- *
- *  @see Types.h
- */
 class Individual {
 
 public:
diff --git a/optimizer/Optimizer/EA/NaiveOnePointCrossover.h b/optimizer/Optimizer/EA/NaiveOnePointCrossover.h
index fe4c3786a2aa61eb50b1cbbeea2b63d9389a35d7..acedd85afff5543a72934f8f88c7f702c7e15ae3 100644
--- a/optimizer/Optimizer/EA/NaiveOnePointCrossover.h
+++ b/optimizer/Optimizer/EA/NaiveOnePointCrossover.h
@@ -1,3 +1,23 @@
+//
+// Struct NaiveOnePointCrossover
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 
diff --git a/optimizer/Optimizer/EA/NaiveUniformCrossover.h b/optimizer/Optimizer/EA/NaiveUniformCrossover.h
index a2dfe6d4d1c5812c3e991af27ef5ad21cfb4c6e7..08af2096a2833cb3495f019334c10051c70812eb 100644
--- a/optimizer/Optimizer/EA/NaiveUniformCrossover.h
+++ b/optimizer/Optimizer/EA/NaiveUniformCrossover.h
@@ -1,7 +1,27 @@
+//
+// Struct NaiveUniformCrossover
+//   Decide for each gene if swapped with other gene.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 
-/// decide for each gene if swapped with other gene
 template <class T> struct NaiveUniformCrossover
 {
     void crossover(boost::shared_ptr<T> ind1, boost::shared_ptr<T> ind2,
diff --git a/optimizer/Optimizer/EA/OneBitMutation.h b/optimizer/Optimizer/EA/OneBitMutation.h
index 12301fc177d18ad37bc704bf3c99bb8a4f4e1e66..2f3055b91f7e1f9466de5e25d20a2a72dfee2593 100644
--- a/optimizer/Optimizer/EA/OneBitMutation.h
+++ b/optimizer/Optimizer/EA/OneBitMutation.h
@@ -1,7 +1,27 @@
+//
+// Struct OneBitMutation
+//   Mutate exactly one gene of an individual.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 
-/// Mutate exactly one gene of an individual.
 template <class T> struct OneBitMutation
 {
     void mutate(boost::shared_ptr<T> ind, CmdArguments_t /*args*/) {
diff --git a/optimizer/Optimizer/EA/Population.h b/optimizer/Optimizer/EA/Population.h
index 87d3522255ea0406d5b719ee47a938a6d1d5c7b9..e9d6ab611423f574b2563a149459fca152f83042 100644
--- a/optimizer/Optimizer/EA/Population.h
+++ b/optimizer/Optimizer/EA/Population.h
@@ -1,3 +1,29 @@
+//
+// Class Population
+//   Managing a population of individuals. We maintain two sets: a set of all
+//   (evaluated) individuals in the population and a set of new potential
+//   individuals (the selector decides which individuals join the population),
+//   called 'stagingArea'.
+//   Most operations work on the 'stagingArea', population is kept for
+//   visualization purposes.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __POPULATION_H__
 #define __POPULATION_H__
 
@@ -15,16 +41,6 @@
 #include "extlib/wfgHypervolume/hypervolume.h"
 
 
-/**
- *  \class Population
- *
- *  Managing a population of individuals. We maintain two sets: a set of all
- *  (evaluated) individuals in the population and a set of new potential
- *  individuals (the selector decides which individuals join the population),
- *  called 'stagingArea'.
- *  Most operations work on the 'stagingArea', population is kept for
- *  visualization purposes.
- */
 template< class Individual_t >
 class Population {
 
diff --git a/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h b/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h
index 592156f905abb9220e4ab6dbb6e642388d2b756d..d72def5f5878c885178e6554b923971f7c474a8e 100644
--- a/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h
+++ b/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h
@@ -1,13 +1,31 @@
+//
+// Struct SimulatedBinaryCrossover
+//   Deb (1995) Simulated Binary Crossover (SBX)
+//   Respects interval schemata.
+//   Offspring are symmetric around parent solutions.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <cmath>
 
 #include "boost/smart_ptr.hpp"
 #include "Util/CmdArguments.h"
 
-/**
- *  Deb (1995) Simulated Binary Crossover (SBX)
- *  Respects interval schemata.
- *  Offspring are symmetric around parent solutions.
- */
 
 template <class T> struct SimulatedBinaryCrossover
 {
diff --git a/optimizer/Optimizer/EA/Variator.h b/optimizer/Optimizer/EA/Variator.h
index 7a8e0bf896cde131f67156e452f5f5bcbd72d04b..ee4c048593c6a8c8f906b26ea9e05a517b1cefc9 100644
--- a/optimizer/Optimizer/EA/Variator.h
+++ b/optimizer/Optimizer/EA/Variator.h
@@ -1,3 +1,23 @@
+//
+// Class Variator
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __VARIATOR_H__
 #define __VARIATOR_H__
 
diff --git a/optimizer/Optimizer/Optimizer.h b/optimizer/Optimizer/Optimizer.h
index af797f5b54e134f12fd7f8456a7caa579d5cf976..e77caf099bfe4ccc8b389b6d13baf8c4d0c2492a 100644
--- a/optimizer/Optimizer/Optimizer.h
+++ b/optimizer/Optimizer/Optimizer.h
@@ -1,3 +1,25 @@
+//
+// Class Optimizer
+//   An abstract class defining the interface for all optimizer
+//   components.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __OPTIMIZER_H__
 #define __OPTIMIZER_H__
 
@@ -6,11 +28,6 @@
 #include "Util/Types.h"
 #include "Pilot/Poller.h"
 
-/**
- *  \class Optimizer
- *  \brief An abstract class defining the interface for all optimizer
- *         components.
- */
 class Optimizer : protected Poller {
 
 public:
diff --git a/optimizer/Pilot/Pilot.h b/optimizer/Pilot/Pilot.h
index d17817eb7aed99eed61c31453d2b39e861a18c3d..6f32d3e8c5fe9fe6f5dab86bc542b48a973078cb 100644
--- a/optimizer/Pilot/Pilot.h
+++ b/optimizer/Pilot/Pilot.h
@@ -1,3 +1,41 @@
+//
+// Class Pilot
+//   The Optimization Pilot (Master): Coordinates requests by optimizer
+//   to workers and reports results back on a given communicator.
+//
+//   Every worker thread notifies the master here if idle or not. When
+//   available the master dispatches one of the pending simulations to the
+//   worker who will run the specified simulation and report results back to
+//   the master. The Optimizer class will poll the scheduler to check if some
+//   (or all) results are available and continue to optimize and request new
+//   simulation results.
+//
+//   @see Worker
+//   @see Optimizer
+//
+//   @tparam Opt_t type of the optimizer
+//   @tparam Sim_t type of the simulation
+//   @tparam SolPropagationGraph_t strategy to distribute solution between
+//           master islands
+//   @tparam Comm_t comm splitter strategy
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __PILOT_H__
 #define __PILOT_H__
 
@@ -55,27 +93,6 @@
 
 
 
-/**
- *  \class Pilot
- *  \brief The Optimization Pilot (Master): Coordinates requests by optimizer
- *  to workers and reports results back on a given communicator.
- *
- *  Every worker thread notifies the master here if idle or not. When
- *  available the master dispatches one of the pending simulations to the
- *  worker who will run the specified simulation and report results back to
- *  the master. The Optimizer class will poll the scheduler to check if some
- *  (or all) results are available and continue to optimize and request new
- *  simulation results.
- *
- *  @see Worker
- *  @see Optimizer
- *
- *  @tparam Opt_t type of the optimizer
- *  @tparam Sim_t type of the simulation
- *  @tparam SolPropagationGraph_t strategy to distribute solution between
- *          master islands
- *  @tparam Comm_t comm splitter strategy
- */
 template <
           class Opt_t
         , class Sim_t
diff --git a/optimizer/Pilot/Poller.h b/optimizer/Pilot/Poller.h
index 231d1b516002a8fec78611cc23b404277bb504c4..672e090f8c4ed0bb96c3ccff992425d6aff2fab9 100644
--- a/optimizer/Pilot/Poller.h
+++ b/optimizer/Pilot/Poller.h
@@ -1,3 +1,30 @@
+//
+// Class Poller
+//   An interface implementing the basics of a poll loop, posting an
+//   MPI_Irecv and waiting for new requests on a specific communicator.
+//
+//   @see Pilot
+//   @see Worker
+//   @see Optimizer
+//   @see MPIHelper.h
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __POLLER_H__
 #define __POLLER_H__
 
@@ -5,16 +32,6 @@
 
 #include "Util/MPIHelper.h"
 
-/**
- *  \class Poller
- *  \brief An interface implementing the basics of a poll loop, posting an
- *         MPI_Irecv and waiting for new requests on a specific communicator.
- *
- *  @see Pilot
- *  @see Worker
- *  @see Optimizer
- *  @see MPIHelper.h
- */
 class Poller {
 
 public:
diff --git a/optimizer/Pilot/Worker.h b/optimizer/Pilot/Worker.h
index eaeaba50cee6e0bb28a246471e4d57d7b27bf613..ce5bf1276fdd31aa8868473e1bb6e331fd1b5969 100644
--- a/optimizer/Pilot/Worker.h
+++ b/optimizer/Pilot/Worker.h
@@ -1,3 +1,32 @@
+//
+// Class Worker
+//   A worker MPI entity consists of a processor group that runs a
+//   simulation of type Sim_t. The main loop in run() accepts new jobs from the
+//   master process runs the simulation and reports back the results.
+//
+//   @see Pilot
+//   @see Poller
+//   @see MPIHelper.h
+//
+//   @tparam Sim_T type of simulation to run
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __WORKER_H__
 #define __WORKER_H__
 
@@ -12,18 +41,6 @@
 #include "Util/MPIHelper.h"
 #include "Util/CmdArguments.h"
 
-/**
- *  \class Worker
- *  \brief A worker MPI entity consists of a processor group that runs a
- *  simulation of type Sim_t. The main loop in run() accepts new jobs from the
- *  master process runs the simulation and reports back the results.
- *
- *  @see Pilot
- *  @see Poller
- *  @see MPIHelper.h
- *
- *  @tparam Sim_T type of simulation to run
- */
 template <class Sim_t>
 class Worker : protected Poller {
 
diff --git a/optimizer/Simulation/GenerateOpalSimulation.h b/optimizer/Simulation/GenerateOpalSimulation.h
index dd435cb570b9fe330108e6acde3de854e5b84afa..9d5b770d696846031d0805c1d25a10da9c3a6f01 100644
--- a/optimizer/Simulation/GenerateOpalSimulation.h
+++ b/optimizer/Simulation/GenerateOpalSimulation.h
@@ -1,3 +1,35 @@
+//
+// Class GenerateOpalSimulation
+//   Generates an OPAL input file from data and template file.
+//
+//   When running the optimizer with the OPAL forward solvers this utility
+//   class helps generating OPAL input files corresponding to the design
+//   variable values of the requested evaluation.
+//   Using the data file we start by generating the dictionary of known
+//   templates.
+//   When the input file is requested, all template variables in the template
+//   input file are replaced with values found in the dictionary.
+//
+//   TODO:
+//     - pass stream directly to opal (detour over file not necessary)
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __GENERATE_SIMULATION_H__
 #define __GENERATE_SIMULATION_H__
 
@@ -14,21 +46,6 @@
 
 #include "Util/OptPilotException.h"
 
-/**
- *  \class GenerateOpalSimulation
- *  \brief Generates an OPAL input file from data and template file.
- *
- *  When running the optimizer with the OPAL forward solvers this utility
- *  class helps generating OPAL input files corresponding to the design
- *  variable values of the requested evaluation.
- *  Using the data file we start by generating the dictionary of known
- *  templates.
- *  When the input file is requested, all template variables in the template
- *  input file are replaced with values found in the dictionary.
- *
- *  TODO:
- *    - pass stream directly to opal (detour over file not necessary)
- */
 class GenerateOpalSimulation {
 
 public:
diff --git a/optimizer/Simulation/Simulation.h b/optimizer/Simulation/Simulation.h
index 4cf9398a575cfcdebe8c0ae74362e9b6c6010e1e..1629bbf65347775be552f5e22dbeb5261ee256a0 100644
--- a/optimizer/Simulation/Simulation.h
+++ b/optimizer/Simulation/Simulation.h
@@ -1,22 +1,39 @@
+//
+// Class Simulation
+//   Abstract class every simulation has to implement to be able to
+//   work with the optimization pilot.
+//
+//   To be supported the simulation code has to be called as a library taking
+//   as an argument an MPI communicator specifying on which processors the
+//   simulation runs.
+//
+//   TODO:
+//     - formulate the 'simulation' part as a pipeline.. workers can simply put
+//       together their own pipelines situation-dependent.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __SIMULATION_H__
 #define __SIMULATION_H__
 
 #include "Util/Types.h"
 #include "Util/CmdArguments.h"
 
-/**
- *  \class Simulation
- *  \brief Abstract class every simulation has to implement to be able to
- *  work with the optimization pilot.
- *
- *  To be supported the simulation code has to be called as a library taking
- *  as an argument an MPI communicator specifying on which processors the
- *  simulation runs.
- *
- *  TODO:
- *    - formulate the 'simulation' part as a pipeline.. workers can simply put
- *      together their own pipelines situation-dependent.
- */
 class Simulation {
 
 public:
diff --git a/optimizer/Tests/CmdArgumentsTest.cpp b/optimizer/Tests/CmdArgumentsTest.cpp
index 0ac6f3bcb0ec12cacde9015d31d5dabb791e1e62..a940ab338ef806782a0452d080b025ad10cda9ec 100644
--- a/optimizer/Tests/CmdArgumentsTest.cpp
+++ b/optimizer/Tests/CmdArgumentsTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test CmdArgumentsTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/CmdArguments.h"
 #include "gtest/gtest.h"
 #include "boost/smart_ptr.hpp"
diff --git a/optimizer/Tests/ExpressionTest.cpp b/optimizer/Tests/ExpressionTest.cpp
index fb741d136e2550fad5192cf0f977356807201e43..d3dda9fc844a2c7b31e98b16e1daa488adfc7972 100644
--- a/optimizer/Tests/ExpressionTest.cpp
+++ b/optimizer/Tests/ExpressionTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test ExpressionTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <set>
 #include <string>
 
diff --git a/optimizer/Tests/FromFileExpressionTest.cpp b/optimizer/Tests/FromFileExpressionTest.cpp
index 3f34f8c8f38361986c64a14e26e3ec94f0750b99..33a44c69bbcae4b1bb0f859903b5ec32490eefb4 100644
--- a/optimizer/Tests/FromFileExpressionTest.cpp
+++ b/optimizer/Tests/FromFileExpressionTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test FromFileExpressionTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <set>
 #include <string>
 
diff --git a/optimizer/Tests/HashNameGeneratorTest.cpp b/optimizer/Tests/HashNameGeneratorTest.cpp
index f18b4a19bb22d4422827830925d786c70ba1d928..f3fa95948886883574574798409abd7a223f3208 100644
--- a/optimizer/Tests/HashNameGeneratorTest.cpp
+++ b/optimizer/Tests/HashNameGeneratorTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test HashNameGeneratorTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/NativeHashGenerator.h"
 #include "gtest/gtest.h"
 #include <fstream>
diff --git a/optimizer/Tests/IndividualTest.cpp b/optimizer/Tests/IndividualTest.cpp
index 76125fbacb606fa3785a35386ef3b819bfe0458e..abb62243005d3eb96e246c04dc1385928a4ef523 100644
--- a/optimizer/Tests/IndividualTest.cpp
+++ b/optimizer/Tests/IndividualTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test IndividualTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Optimizer/EA/Individual.h"
 #include "Optimizer/EA/Individual.h"
 #include "gtest/gtest.h"
diff --git a/optimizer/Tests/MPIHelperTest.cpp b/optimizer/Tests/MPIHelperTest.cpp
index dcdf553afab5dbf6ad396c14482e5d801b40bb67..745d37582a36934fec5e41870935e0918c7282e8 100644
--- a/optimizer/Tests/MPIHelperTest.cpp
+++ b/optimizer/Tests/MPIHelperTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test MPIHelperTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/MPIHelper.h"
 #include "gtest/gtest.h"
 
diff --git a/optimizer/Tests/ManagedIDsTest.cpp b/optimizer/Tests/ManagedIDsTest.cpp
index 34f8b3c37dd370f4741405811b1c45c62d4b8a5d..2b899bd03ccf088a8100ec4195e79f9523cf097a 100644
--- a/optimizer/Tests/ManagedIDsTest.cpp
+++ b/optimizer/Tests/ManagedIDsTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test ManagedIDsTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/ManagedIDs.h"
 #include "gtest/gtest.h"
 #include "boost/smart_ptr.hpp"
diff --git a/optimizer/Tests/PopulationTest.cpp b/optimizer/Tests/PopulationTest.cpp
index 3f9edf39ac8f4fc246d4960450c4b4196ad2e2f7..2ea29fd85d6be3cb32c15ff188c8a4b7217f8548 100644
--- a/optimizer/Tests/PopulationTest.cpp
+++ b/optimizer/Tests/PopulationTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test PopulationTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Optimizer/EA/Population.h"
 #include "Optimizer/EA/Individual.h"
 #include "gtest/gtest.h"
diff --git a/optimizer/Tests/PythonExprTest.cpp b/optimizer/Tests/PythonExprTest.cpp
index 5828e96aceb5573f2e6c0382c94d244e8cd22ea7..8c67e96440c0e91c47a8ea384b812bdcc85976e0 100644
--- a/optimizer/Tests/PythonExprTest.cpp
+++ b/optimizer/Tests/PythonExprTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test PythonExprTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <set>
 #include <string>
 
diff --git a/optimizer/Tests/SDDSParserTest.cpp b/optimizer/Tests/SDDSParserTest.cpp
index 2604dbb9b20d0945ef81e0bc2e072bc88b4ebbf3..182f751b3bcfd57d4bc5cad3dcbead2c78460197 100644
--- a/optimizer/Tests/SDDSParserTest.cpp
+++ b/optimizer/Tests/SDDSParserTest.cpp
@@ -1,4 +1,23 @@
-
+//
+// Test SDDSParserTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/SDDSReader.h"
 #include "gtest/gtest.h"
 
diff --git a/optimizer/Tests/SumErrSqExpressionTest.cpp b/optimizer/Tests/SumErrSqExpressionTest.cpp
index 20a6c23af0a1a886df27eb886256c184af1744b1..6396cfd10a46178e4456990ef33a58cc89ec5c9a 100644
--- a/optimizer/Tests/SumErrSqExpressionTest.cpp
+++ b/optimizer/Tests/SumErrSqExpressionTest.cpp
@@ -1,3 +1,23 @@
+//
+// Test SumErrSqExpressionTest
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <set>
 #include <string>
 
diff --git a/optimizer/Util/AsyncSendBuffers.h b/optimizer/Util/AsyncSendBuffers.h
index 1cf3dfeef2357cb3211d786c92055afacd9c4b29..4541e94c9f124fd3ffd5e395ef8de1eb7d74d716 100644
--- a/optimizer/Util/AsyncSendBuffers.h
+++ b/optimizer/Util/AsyncSendBuffers.h
@@ -1,3 +1,23 @@
+//
+// Class AsyncSendBuffer and AsyncSendBuffers
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <vector>
 #include <algorithm>
 #include <string.h>
diff --git a/optimizer/Util/CmdArguments.cpp b/optimizer/Util/CmdArguments.cpp
index d54a14312a4a5dcc891f6c07fb9ac63f8c1d39fd..14a2e1b1d11706b7493db1f2818ea46fa800a37b 100644
--- a/optimizer/Util/CmdArguments.cpp
+++ b/optimizer/Util/CmdArguments.cpp
@@ -1,3 +1,30 @@
+//
+// Class CmdArguments
+//   Parsing command line arguments
+//
+//   In order to have a flexible framework, each component implementation gets
+//   access to all command line arguments.
+//   All command line options have the form:
+//       --name=value
+//   Spaces before and after the "=" will be trimmed.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/CmdArguments.h"
 
 void CmdArguments::addArguments(int argc, char **argv) {
diff --git a/optimizer/Util/CmdArguments.h b/optimizer/Util/CmdArguments.h
index 80861f7b0a6cd678c1a76b95301f21165a316a17..e90f58896b0f89eb70fe636d04606aaba447679c 100644
--- a/optimizer/Util/CmdArguments.h
+++ b/optimizer/Util/CmdArguments.h
@@ -1,3 +1,30 @@
+//
+// Class CmdArguments
+//   Parsing command line arguments
+//
+//   In order to have a flexible framework, each component implementation gets
+//   access to all command line arguments.
+//   All command line options have the form:
+//       --name=value
+//   Spaces before and after the "=" will be trimmed.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __CMD_ARGUMENTS__
 #define __CMD_ARGUMENTS__
 
@@ -13,16 +40,6 @@
 
 #include "Util/OptPilotException.h"
 
-/**
- *  \class CmdArguments
- *  \brief Parsing command line arguments
- *
- *  In order to have a flexible framework, each component implementation gets
- *  access to all command line arguments.
- *  All command line options have the form:
- *      --name=value
- *  Spaces before and after the "=" will be trimmed.
- */
 class CmdArguments {
 
 public:
diff --git a/optimizer/Util/MPIHelper.cpp b/optimizer/Util/MPIHelper.cpp
index 4dfe6a779dd71ea2e5c85942d561bad35d8ea607..4199d7c8985730bf7e8a71ecddba505ea7b37f7b 100644
--- a/optimizer/Util/MPIHelper.cpp
+++ b/optimizer/Util/MPIHelper.cpp
@@ -1,3 +1,23 @@
+//
+// Global functions MPIHelper
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <string.h>
 
 #include <boost/static_assert.hpp>
diff --git a/optimizer/Util/MPIHelper.h b/optimizer/Util/MPIHelper.h
index f0446dc9dfcc5b2fd5345669da43b4dc48b59128..79d8e4c2fb9426fd84e5d78a12453c50782f0fb5 100644
--- a/optimizer/Util/MPIHelper.h
+++ b/optimizer/Util/MPIHelper.h
@@ -1,3 +1,23 @@
+//
+// Global functions MPIHelper
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __MPIHELPER_H__
 #define __MPIHELPER_H__
 
diff --git a/optimizer/Util/ManagedIDs.h b/optimizer/Util/ManagedIDs.h
index add88f3a9ed77625fb7d7f514263f02e79fd0ba7..4c5494ef742371c005e88ef345cba0c5d14b0ff3 100644
--- a/optimizer/Util/ManagedIDs.h
+++ b/optimizer/Util/ManagedIDs.h
@@ -1,11 +1,29 @@
+//
+// Class ManagedIDs
+//   Simple class to manage an ID pool.
+//
+//   Previously freed ID's are redistributed on following requests.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <cstddef>
 #include <queue>
 
-/**
- *  \brief Simple class to manage an ID pool.
- *
- *  Previously freed ID's are redistributed on following requests.
- */
 class ManagedIDs {
 
 public:
diff --git a/optimizer/Util/NativeHashGenerator.h b/optimizer/Util/NativeHashGenerator.h
index 51af7f04b7940c40d225d657511325341979037e..91b196d370e38d69573c5cc2edb25bd8918b2c1a 100644
--- a/optimizer/Util/NativeHashGenerator.h
+++ b/optimizer/Util/NativeHashGenerator.h
@@ -1,14 +1,31 @@
+//
+// Class NativeHashGenerator
+//   Generates a hash name.
+//   Concatenates and hashes a vector of strings.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include <vector>
 #include <string>
 #include <sstream>
 #include <functional>
 #include <algorithm>
 
-/**
- *  \brief Generates a hash name.
- *
- *  Concatenates and hashes a vector of strings.
- */
 class NativeHashGenerator {
 
 public:
diff --git a/optimizer/Util/OptPilotException.h b/optimizer/Util/OptPilotException.h
index cbc3b1c6d16212e88b960b2426ceb3a116e9d8b5..3c14b83ba91f6a299221440b63b02db7e538115e 100644
--- a/optimizer/Util/OptPilotException.h
+++ b/optimizer/Util/OptPilotException.h
@@ -1,3 +1,23 @@
+//
+// Class OptPilotException
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __OPTPILOTEXCEPTION_H__
 #define __OPTPILOTEXCEPTION_H__
 
diff --git a/optimizer/Util/ProbeReader.cpp b/optimizer/Util/ProbeReader.cpp
index e95da06ec121c04a4c7e01966a3fb0dab650e68a..b211e147a173e08c019dd9e8524e54b69c3d0319 100644
--- a/optimizer/Util/ProbeReader.cpp
+++ b/optimizer/Util/ProbeReader.cpp
@@ -1,3 +1,24 @@
+//
+// Class ProbeReader
+//   Implements a parser and value extractor for Probe loss files.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "ProbeReader.h"
 
 #include "Util/OptPilotException.h"
diff --git a/optimizer/Util/ProbeReader.h b/optimizer/Util/ProbeReader.h
index 7800344e998a3185b193feba1bf1759b4378cc6a..84d631cae67928ea5979fc0ae0efb1120264e1b9 100644
--- a/optimizer/Util/ProbeReader.h
+++ b/optimizer/Util/ProbeReader.h
@@ -1,15 +1,31 @@
+//
+// Class ProbeReader
+//   Implements a parser and value extractor for Probe loss files.
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __PROBEREADER_H__
 #define __PROBEREADER_H__
 
 #include <string>
 #include <vector>
 #include <map>
-// #include <locale>
 
-/**
- *  \class SDDSReader
- *  \brief Implements a parser and value extractor for Probe loss files
- */
 class ProbeReader {
     
 public:
diff --git a/optimizer/Util/SDDSParser.cpp b/optimizer/Util/SDDSParser.cpp
index 30dc9fc7553cb46bc48fe87e8697c02c6aa5f845..e1cef724d78de3189169eaf6247987f206715c8c 100644
--- a/optimizer/Util/SDDSParser.cpp
+++ b/optimizer/Util/SDDSParser.cpp
@@ -1,3 +1,20 @@
+//
+// Class SDDSParser
+//   This class writes column entries of SDDS files.
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "SDDSParser.h"
 
 #include <boost/algorithm/string.hpp>
diff --git a/optimizer/Util/SDDSParser.h b/optimizer/Util/SDDSParser.h
index 7143cacdeb03278629d7d1bde2506abb2030c0a3..38b5ce28d943636c572ecdeca23e55a7614aad2a 100644
--- a/optimizer/Util/SDDSParser.h
+++ b/optimizer/Util/SDDSParser.h
@@ -1,7 +1,20 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Class SDDSParser
+//   This class writes column entries of SDDS files.
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "Util/SDDSParser/ast.hpp"
 #include "Util/SDDSParser/file.hpp"
 #include "Util/SDDSParser/skipper.hpp"
diff --git a/optimizer/Util/SDDSParser/SDDSParserException.h b/optimizer/Util/SDDSParser/SDDSParserException.h
index 7fb023c5aaee38ba8da1811589d1c48fd23b59cd..81d187864f184c1fb940dba45af257e731cf381f 100644
--- a/optimizer/Util/SDDSParser/SDDSParserException.h
+++ b/optimizer/Util/SDDSParser/SDDSParserException.h
@@ -1,3 +1,19 @@
+//
+// Class SDDSParserException
+//
+// Copyright (c) 2018, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __SDDSPARSEREXCEPTION_H__
 #define __SDDSPARSEREXCEPTION_H__
 
diff --git a/optimizer/Util/SDDSParser/array.cpp b/optimizer/Util/SDDSParser/array.cpp
index 782114951967ae24544073ea70b4a1994ca82b48..87e1600cfdcd2c540919372e1aa37a58d174fdd8 100644
--- a/optimizer/Util/SDDSParser/array.cpp
+++ b/optimizer/Util/SDDSParser/array.cpp
@@ -1,8 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct array
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-
 #include "array_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/array.hpp b/optimizer/Util/SDDSParser/array.hpp
index 0d61f9767d421faf24be1178174a40f72f261c49..79a386545f76793cc3289db68df3b140788c9880 100644
--- a/optimizer/Util/SDDSParser/array.hpp
+++ b/optimizer/Util/SDDSParser/array.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct array
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef ARRAY_HPP_
 #define ARRAY_HPP_
 
diff --git a/optimizer/Util/SDDSParser/array_def.hpp b/optimizer/Util/SDDSParser/array_def.hpp
index 7c9c3ac66f165028b5087f3593142759cefa3ece..ab75e648f6229178b4ba65479bf3c88c6f028932 100644
--- a/optimizer/Util/SDDSParser/array_def.hpp
+++ b/optimizer/Util/SDDSParser/array_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct array
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef ARRAY_DEF_HPP_
 #define ARRAY_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/associate.cpp b/optimizer/Util/SDDSParser/associate.cpp
index 9cf0fcc7dc3e7a7459c1b9db2da798e76664f442..6a660751454f18e8bb96a09fdf9b9fbfb93b1a54 100644
--- a/optimizer/Util/SDDSParser/associate.cpp
+++ b/optimizer/Util/SDDSParser/associate.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct associate
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "associate_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/associate.hpp b/optimizer/Util/SDDSParser/associate.hpp
index 9d79ece79488504b821dbc24fd3b088c4fe95af8..82c24ae56dcaa53d61b1f2ee9fe68863b10827b5 100644
--- a/optimizer/Util/SDDSParser/associate.hpp
+++ b/optimizer/Util/SDDSParser/associate.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct associate
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef ASSOCIATE_HPP_
 #define ASSOCIATE_HPP_
 
diff --git a/optimizer/Util/SDDSParser/associate_def.hpp b/optimizer/Util/SDDSParser/associate_def.hpp
index 5114b2d9d15b993461864495a249b4a16bdbf8e1..9158bbdc9e49353c751fc9ecfc55dc391128cecc 100644
--- a/optimizer/Util/SDDSParser/associate_def.hpp
+++ b/optimizer/Util/SDDSParser/associate_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct associate
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef ASSOCIATE_DEF_HPP_
 #define ASSOCIATE_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/ast.cpp b/optimizer/Util/SDDSParser/ast.cpp
index d1e4a515c9321fed0882ed935aaf1a82b5b2ebf7..0c2a208124ac10fbe27e6d862c953ef6c89fb145 100644
--- a/optimizer/Util/SDDSParser/ast.cpp
+++ b/optimizer/Util/SDDSParser/ast.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Namespace ast
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "ast_def.hpp"
 #include "skipper.hpp"
 
diff --git a/optimizer/Util/SDDSParser/ast.hpp b/optimizer/Util/SDDSParser/ast.hpp
index 9d6dc1d17352330509e6ff5e1203afd0f6dadd06..915b98431d1a3c33a510a95ea0633fa2131180f9 100644
--- a/optimizer/Util/SDDSParser/ast.hpp
+++ b/optimizer/Util/SDDSParser/ast.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Namespace ast
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef AST_HPP_
 #define AST_HPP_
 
diff --git a/optimizer/Util/SDDSParser/ast_def.hpp b/optimizer/Util/SDDSParser/ast_def.hpp
index abe755ed9cabc09285bcb7d916391a222cdf2b01..dacfd936c10db90a3c60bf9e0f1ddd344519d9cb 100644
--- a/optimizer/Util/SDDSParser/ast_def.hpp
+++ b/optimizer/Util/SDDSParser/ast_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Namespace ast
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef AST_DEF_HPP_
 #define AST_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/column.cpp b/optimizer/Util/SDDSParser/column.cpp
index b4ec46edb5cfe608945e4f05af12efb7a44549f3..c8048678ed002c8e8191979fb33b28225a665919 100644
--- a/optimizer/Util/SDDSParser/column.cpp
+++ b/optimizer/Util/SDDSParser/column.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct column
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "column_def.hpp"
 
 unsigned int SDDS::column::count_m = 0;
diff --git a/optimizer/Util/SDDSParser/column.hpp b/optimizer/Util/SDDSParser/column.hpp
index 033123c2039dfe8d8c95e2e13490fcf6f1053090..b6ddb1cec9849398bc5d56395b95762dc95dd5ff 100644
--- a/optimizer/Util/SDDSParser/column.hpp
+++ b/optimizer/Util/SDDSParser/column.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct column
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef COLUMN_HPP_
 #define COLUMN_HPP_
 
diff --git a/optimizer/Util/SDDSParser/column_def.hpp b/optimizer/Util/SDDSParser/column_def.hpp
index 754ab636b238cc8044e09b5f16a4e10afbf76df6..6561815e93409b7c06b53800f6b8be97f4279174 100644
--- a/optimizer/Util/SDDSParser/column_def.hpp
+++ b/optimizer/Util/SDDSParser/column_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct column
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef COLUMN_DEF_HPP_
 #define COLUMN_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/data.cpp b/optimizer/Util/SDDSParser/data.cpp
index 3c69bd377609937358acf55f480add8682e32ff5..d20f37c0f1ce492c0d5a6a37ca21b110b781426c 100644
--- a/optimizer/Util/SDDSParser/data.cpp
+++ b/optimizer/Util/SDDSParser/data.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct data
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "data.hpp"
 #include "data_def.hpp"
 
diff --git a/optimizer/Util/SDDSParser/data.hpp b/optimizer/Util/SDDSParser/data.hpp
index 3d22510f23ae3e0cd9debf04d4b3054df8078513..cf3bafd6cc47f5b2e4a51353df4cd863bd871ab4 100644
--- a/optimizer/Util/SDDSParser/data.hpp
+++ b/optimizer/Util/SDDSParser/data.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct data
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef DATA_HPP_
 #define DATA_HPP_
 
diff --git a/optimizer/Util/SDDSParser/data_def.hpp b/optimizer/Util/SDDSParser/data_def.hpp
index 3270a0c5a3fa358b297f48120588521f33751539..8b497b8afd61a677a1ae2d205db282a4d4c5b061 100644
--- a/optimizer/Util/SDDSParser/data_def.hpp
+++ b/optimizer/Util/SDDSParser/data_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct data
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef DATA_DEF_HPP_
 #define DATA_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/description.cpp b/optimizer/Util/SDDSParser/description.cpp
index cb13b55522b20f0a1dbb5f75fb780cbd62557a44..0437b95986371fb49279391958ef53ad5e322119 100644
--- a/optimizer/Util/SDDSParser/description.cpp
+++ b/optimizer/Util/SDDSParser/description.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct description
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "description_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/description.hpp b/optimizer/Util/SDDSParser/description.hpp
index 59f5e5e97aa2313703fb0555bd170753aae68f57..d4dd8ee9deee56c8b849a2cc310eb2e87038e429 100644
--- a/optimizer/Util/SDDSParser/description.hpp
+++ b/optimizer/Util/SDDSParser/description.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct description
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef DESCRIPTION_HPP_
 #define DESCRIPTION_HPP_
 
diff --git a/optimizer/Util/SDDSParser/description_def.hpp b/optimizer/Util/SDDSParser/description_def.hpp
index 8ce6c586feb2cfdee8bd7f99ccdfb3633a9eafd3..03659bebbafff86eb5c941d2a7e7d5b4a2419f57 100644
--- a/optimizer/Util/SDDSParser/description_def.hpp
+++ b/optimizer/Util/SDDSParser/description_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct description
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef DESCRIPTION_DEF_HPP_
 #define DESCRIPTION_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/error_handler.hpp b/optimizer/Util/SDDSParser/error_handler.hpp
index f0871eb556ce238437ceaacbd718e1250d6e1387..e5fe9a68b55c0ada7b3e7cc01d5645e6ca5bebe1 100644
--- a/optimizer/Util/SDDSParser/error_handler.hpp
+++ b/optimizer/Util/SDDSParser/error_handler.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct error_handler
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef ERROR_HANDLER_HPP_
 #define ERROR_HANDLER_HPP_
 
diff --git a/optimizer/Util/SDDSParser/file.cpp b/optimizer/Util/SDDSParser/file.cpp
index 323dd988e1d934023b8f951588349b48c3639310..41267c21e00b97b9bb576d1e2b912319a9412b39 100644
--- a/optimizer/Util/SDDSParser/file.cpp
+++ b/optimizer/Util/SDDSParser/file.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct file
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "file_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/file.hpp b/optimizer/Util/SDDSParser/file.hpp
index 6335ddd3d0141ad1a721cc79d994890c281a8589..14d482e31cb9eb0060963357f3f42ff6159823b7 100644
--- a/optimizer/Util/SDDSParser/file.hpp
+++ b/optimizer/Util/SDDSParser/file.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct file
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef FILE_HPP_
 #define FILE_HPP_
 
diff --git a/optimizer/Util/SDDSParser/file_def.hpp b/optimizer/Util/SDDSParser/file_def.hpp
index 521bae4339164624a806d11493cb251204e78dc5..96734b21ac0ed9e71e10c83cd64c0ca374331902 100644
--- a/optimizer/Util/SDDSParser/file_def.hpp
+++ b/optimizer/Util/SDDSParser/file_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct file
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef FILE_DEF_HPP_
 #define FILE_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/include.cpp b/optimizer/Util/SDDSParser/include.cpp
index a6c84c49d0315315f2fd0ec26dcdfeb6acb08d22..80d8ca346dc9cde2c888465dbdd0ce677ac7dcc4 100644
--- a/optimizer/Util/SDDSParser/include.cpp
+++ b/optimizer/Util/SDDSParser/include.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct include
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "include_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/include.hpp b/optimizer/Util/SDDSParser/include.hpp
index dec789e429550b3867a1bf95e85ca2741ca8533a..06d8becd9c439cfa6e8b62e65786e5fa4129b027 100644
--- a/optimizer/Util/SDDSParser/include.hpp
+++ b/optimizer/Util/SDDSParser/include.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct include
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef INCLUDE_HPP_
 #define INCLUDE_HPP_
 
diff --git a/optimizer/Util/SDDSParser/include_def.hpp b/optimizer/Util/SDDSParser/include_def.hpp
index 65da1f6249be990ecd6349a99d27d8d9ca47c859..31daf4360a5181bc2a10604c9b5eb5b83785c063 100644
--- a/optimizer/Util/SDDSParser/include_def.hpp
+++ b/optimizer/Util/SDDSParser/include_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct include
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef INCLUDE_DEF_HPP_
 #define INCLUDE_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/parameter.cpp b/optimizer/Util/SDDSParser/parameter.cpp
index 8bb963d861b037ada4b337d350655565c80bd4a4..56fd1ecf8b0087b8889aa4f66fccb5b02c9a8eab 100644
--- a/optimizer/Util/SDDSParser/parameter.cpp
+++ b/optimizer/Util/SDDSParser/parameter.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct parameter
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "parameter_def.hpp"
 
 unsigned int SDDS::parameter::count_m = 0;
diff --git a/optimizer/Util/SDDSParser/parameter.hpp b/optimizer/Util/SDDSParser/parameter.hpp
index 427aecbffd4ccaef00591d38b49e00dbcdbde493..969a99d6887cf4dd0cf447895b026a8bd13b3d5d 100644
--- a/optimizer/Util/SDDSParser/parameter.hpp
+++ b/optimizer/Util/SDDSParser/parameter.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct parameter
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef PARAMETER_HPP_
 #define PARAMETER_HPP_
 
diff --git a/optimizer/Util/SDDSParser/parameter_def.hpp b/optimizer/Util/SDDSParser/parameter_def.hpp
index 80ab52ed15f28cc20ac21b8bc823965d041d0b6b..cbad87aa56f6593afdced50d6bde90d3fcbc43a1 100644
--- a/optimizer/Util/SDDSParser/parameter_def.hpp
+++ b/optimizer/Util/SDDSParser/parameter_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct parameter
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef PARAMETER_DEF_HPP_
 #define PARAMETER_DEF_HPP_
 
diff --git a/optimizer/Util/SDDSParser/skipper.hpp b/optimizer/Util/SDDSParser/skipper.hpp
index 56b0fca195e400891a294f1e5ae36718ca094207..a73b256f6b0dbcb951a697bea8713a3a172d2f03 100644
--- a/optimizer/Util/SDDSParser/skipper.hpp
+++ b/optimizer/Util/SDDSParser/skipper.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct skipper
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef SKIPPER_HPP_
 #define SKIPPER_HPP_
 
diff --git a/optimizer/Util/SDDSParser/version.cpp b/optimizer/Util/SDDSParser/version.cpp
index 8d59641e4d6c340e1343919da47167d08acea298..850aff1963ece87e33681a7bc930274320297291 100644
--- a/optimizer/Util/SDDSParser/version.cpp
+++ b/optimizer/Util/SDDSParser/version.cpp
@@ -1,7 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct version
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
 #include "version_def.hpp"
 
 typedef std::string::const_iterator iterator_t;
diff --git a/optimizer/Util/SDDSParser/version.hpp b/optimizer/Util/SDDSParser/version.hpp
index 7a8c09f3b8f369ce30da26f4dd02fbfb6f898288..152533d176456687f753e5a478c515a05422f0b3 100644
--- a/optimizer/Util/SDDSParser/version.hpp
+++ b/optimizer/Util/SDDSParser/version.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct version
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef VERSION_HPP_
 #define VERSION_HPP_
 
diff --git a/optimizer/Util/SDDSParser/version_def.hpp b/optimizer/Util/SDDSParser/version_def.hpp
index 7c3c0d5575fd58edbc482290593805ea3e5e4803..43708a9a049d6bb765a56834f22600288e65e548 100644
--- a/optimizer/Util/SDDSParser/version_def.hpp
+++ b/optimizer/Util/SDDSParser/version_def.hpp
@@ -1,11 +1,19 @@
 //
-//  Copyright & License: See Copyright.readme in src directory
+// Struct version
+//
+// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer
+// All rights reserved
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
 //
-
-/*!
-  Class documentation
-*/
-
 #ifndef VERSION_DEF_HPP_
 #define VERSION_DEF_HPP_
 
diff --git a/optimizer/Util/Statistics.h b/optimizer/Util/Statistics.h
index 32971b2a307f545930c96e1bec57fd3172237b73..bf2001e142ff6dee3396cfa0f4386b8093a406a3 100644
--- a/optimizer/Util/Statistics.h
+++ b/optimizer/Util/Statistics.h
@@ -1,3 +1,23 @@
+//
+// Class Statistics
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __STATISTICS_H__
 #define __STATISTICS_H__
 
diff --git a/optimizer/Util/Trace/CoutSink.h b/optimizer/Util/Trace/CoutSink.h
index d6e6e10e833a89a9bffa42cb74f666c6d86aea8d..746511e922533a7179abeed70db106414b1701fe 100644
--- a/optimizer/Util/Trace/CoutSink.h
+++ b/optimizer/Util/Trace/CoutSink.h
@@ -1,3 +1,23 @@
+//
+// Class CoutSink
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TRACE_COUT_SINK_H__
 #define __TRACE_COUT_SINK_H__
 
diff --git a/optimizer/Util/Trace/FileSink.h b/optimizer/Util/Trace/FileSink.h
index 96d3258b0aa32514298fbcdb3fe0881771cee79a..d844a54285bb905e3e536b982ab9589864833b95 100644
--- a/optimizer/Util/Trace/FileSink.h
+++ b/optimizer/Util/Trace/FileSink.h
@@ -1,3 +1,23 @@
+//
+// Class FileSink
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TRACE_FILE_SINK_H__
 #define __TRACE_FILE_SINK_H__
 
diff --git a/optimizer/Util/Trace/MyPid.h b/optimizer/Util/Trace/MyPid.h
index 13a6c367344e923ed6f3944aac77240e10ec11c8..70931647a907a279313aeb0eeb0eb8939c10085f 100644
--- a/optimizer/Util/Trace/MyPid.h
+++ b/optimizer/Util/Trace/MyPid.h
@@ -1,3 +1,23 @@
+//
+// Class MyPid
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #include "Util/Trace/TraceComponent.h"
 
 #include "mpi.h"
diff --git a/optimizer/Util/Trace/Timestamp.h b/optimizer/Util/Trace/Timestamp.h
index eed9e4623065f4a8b4c36166e93756b31a91068f..4a0d4c7e7c8a306cfcbc63d7fa6b2204c1d21e86 100644
--- a/optimizer/Util/Trace/Timestamp.h
+++ b/optimizer/Util/Trace/Timestamp.h
@@ -1,3 +1,23 @@
+//
+// Class Timestamp
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TIMESTAMP_H__
 #define __TIMESTAMP_H__
 
diff --git a/optimizer/Util/Trace/Trace.h b/optimizer/Util/Trace/Trace.h
index 804da10c8362cfb0e4b233052236edb8919a0f1a..8286fbb1a60545beca4c243f1fa14c3c9acd4e8b 100644
--- a/optimizer/Util/Trace/Trace.h
+++ b/optimizer/Util/Trace/Trace.h
@@ -1,3 +1,23 @@
+//
+// Class Trace
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TRACE_H__
 #define __TRACE_H__
 
diff --git a/optimizer/Util/Trace/TraceComponent.h b/optimizer/Util/Trace/TraceComponent.h
index a89378ee619800f96923fd09a46226986f293bfa..cd1c8bef27cd069c5760e2894d546c610072c25a 100644
--- a/optimizer/Util/Trace/TraceComponent.h
+++ b/optimizer/Util/Trace/TraceComponent.h
@@ -1,3 +1,23 @@
+//
+// Class TraceComponent
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TRACE_COMPONENT_H__
 #define __TRACE_COMPONENT_H__
 
diff --git a/optimizer/Util/Types.h b/optimizer/Util/Types.h
index 7d196fce3ea56f8d317d5d5dd43f56c84f623a65..a972d57656ba610010bc583eaaf785ed935ade5c 100644
--- a/optimizer/Util/Types.h
+++ b/optimizer/Util/Types.h
@@ -1,3 +1,23 @@
+//
+// File Types
+//
+// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich
+// All rights reserved
+//
+// Implemented as part of the PhD thesis
+// "Toward massively parallel multi-objective optimization withapplication to
+// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359)
+//
+// This file is part of OPAL.
+//
+// OPAL 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.
+//
+// You should have received a copy of the GNU General Public License
+// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
+//
 #ifndef __TYPES_H__
 #define __TYPES_H__