Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:19:19

0001 /*******************************************************************************
0002  * Copyright (c) The JETSCAPE Collaboration, 2018
0003  *
0004  * Modular, task-based framework for simulating all aspects of heavy-ion collisions
0005  * 
0006  * For the list of contributors see AUTHORS.
0007  *
0008  * Report issues at https://github.com/JETSCAPE/JETSCAPE/issues
0009  *
0010  * or via email to bugs.jetscape@gmail.com
0011  *
0012  * Distributed under the GNU General Public License 3.0 (GPLv3 or later).
0013  * See COPYING for details.
0014  ******************************************************************************/
0015 
0016 #include "JetScapeTask.h"
0017 #include "JetScapeTaskSupport.h"
0018 #include "JetScapeLogger.h"
0019 
0020 #include "JetEnergyLoss.h"
0021 
0022 #include <iostream>
0023 
0024 using namespace std;
0025 
0026 namespace Jetscape {
0027 
0028 JetScapeTask::JetScapeTask() {
0029   active_exec = true;
0030   id = "";
0031   my_task_number_ = JetScapeTaskSupport::Instance()->RegisterTask();
0032   VERBOSE(9);
0033 }
0034 
0035 JetScapeTask::~JetScapeTask() {
0036   VERBOSE(9);
0037   JSDEBUG << "Deleting task with id=" << GetId()
0038           << " and TaskNumber= " << GetMyTaskNumber();
0039 }
0040 
0041 void JetScapeTask::Init() { JSDEBUG; }
0042 
0043 /** Recursive initialization of all the subtasks of the JetScapeTask. Subtasks are also of type JetScapeTask such as Pythia Gun, Trento, Energy Loss Matter and Martini etc.
0044    */
0045 void JetScapeTask::InitTasks() {
0046   VERBOSE(7) << " : # Subtasks = " << tasks.size();
0047 
0048   //In short ...
0049   for (auto it : tasks)
0050     it->Init();
0051 }
0052 
0053 void JetScapeTask::Exec() { VERBOSE(7); }
0054 
0055 void JetScapeTask::ExecuteTasks() {
0056   VERBOSE(7) << " : # Subtasks = " << tasks.size();
0057   for (auto it : tasks) {
0058     if (it->active_exec) {
0059       JSDEBUG << "Executing " << it->GetId();
0060       it->Exec();
0061     }
0062   }
0063 }
0064 
0065 void JetScapeTask::ClearTasks() {
0066   VERBOSE(7) << " : # Subtasks = " << tasks.size();
0067   for (auto it : tasks)
0068     if (it->active_exec)
0069       it->Clear();
0070 }
0071 
0072 void JetScapeTask::WriteTasks(weak_ptr<JetScapeWriter> w) {
0073   //VERBOSE(10);
0074   if (active_exec) {
0075     for (auto it : tasks)
0076       it->WriteTask(w);
0077   }
0078 }
0079 
0080 void JetScapeTask::CollectHeaders(weak_ptr<JetScapeWriter> w) {
0081   //VERBOSE(10);
0082   if (active_exec) {
0083     for (auto it : tasks)
0084       it->CollectHeader(w);
0085   }
0086 }
0087 
0088 void JetScapeTask::Add(shared_ptr<JetScapeTask> m_tasks) {
0089   tasks.push_back(m_tasks);
0090 }
0091 
0092 } // end namespace Jetscape