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 // jetscape writer ascii class, filter
0017 
0018 #ifndef JETSCAPEWRITERSTREAMFILTER_H
0019 #define JETSCAPEWRITERSTREAMFILTER_H
0020 
0021 #include "JetScapeWriterStream.h"
0022 #include "sigslot.h"
0023 
0024 #define JETSCAPEWRITER_PARTONSHOWER 1
0025 #define JETSCAPEWRITER_PARTON       2
0026 #define JETSCAPEWRITER_VERTEX       4
0027 #define JETSCAPEWRITER_HADRON       8
0028 
0029 
0030 namespace Jetscape {
0031 
0032 template<class T>  
0033 class JetScapeWriterStreamFilter : public JetScapeWriterStream<T>
0034 {
0035 
0036  public:
0037 
0038   JetScapeWriterStreamFilter<T>() {};
0039   JetScapeWriterStreamFilter<T>(string m_file_name_out, unsigned char filter):
0040     JetScapeWriterStream<T>(m_file_name_out){
0041     displayFilter = filter;
0042   }
0043   virtual ~JetScapeWriterStreamFilter<T>(){};
0044 
0045   sigslot::signal1<vector<shared_ptr<Hadron>>& > GetHadronList;
0046 
0047   //void Init();
0048   //void Exec();
0049   //
0050   //bool GetStatus() {return output_file.good();}
0051   //void Close() {output_file.close();}
0052   //
0053   //void WriteInitFileXML();
0054 
0055   void Write(weak_ptr<PartonShower> ps){
0056     if(displayFilter & JETSCAPEWRITER_PARTONSHOWER)
0057       {JetScapeWriterStream<T>::Write(ps);}}
0058 
0059   void Write(weak_ptr<Parton> p){
0060     if(displayFilter & JETSCAPEWRITER_PARTON)
0061       {JetScapeWriterStream<T>::Write(p);}}
0062 
0063   void Write(weak_ptr<Vertex> v){
0064     if(displayFilter & JETSCAPEWRITER_VERTEX)
0065       {JetScapeWriterStream<T>::Write(v);}}
0066 
0067   void Write(weak_ptr<Hadron> h){
0068     if(displayFilter & JETSCAPEWRITER_HADRON)
0069       {JetScapeWriterStream<T>::Write(h);}}
0070 
0071   //void WriteHeaderToFile();
0072   //
0073   //void Write(string s) {output_file<<s<<endl;}
0074   //void WriteComment(string s) {output_file<<"# "<<s<<endl;}
0075   //void WriteWhiteSpace(string s) {output_file<<s<<" ";}
0076   //void WriteEvent(); 
0077 
0078  protected:
0079   unsigned char displayFilter;
0080  
0081 };
0082 
0083 typedef JetScapeWriterStreamFilter<ofstream> JetScapeWriterAsciiFilter;
0084 #ifdef USE_GZIP
0085 typedef JetScapeWriterStreamFilter<ogzstream> JetScapeWriterAsciiGZFilter;
0086 #endif
0087 
0088 } // end namespace Jetscape
0089 
0090 #endif // JETSCAPEWRITERSTREAM_H