![]() |
|
|||
File indexing completed on 2025-02-22 10:33:30
0001 /** 0002 \file 0003 Declaration of class erhic::Pythia6. 0004 0005 \author Thomas Burton 0006 \date 2012-01-18 0007 \copyright 2012 Brookhaven National Lab 0008 */ 0009 0010 #ifndef INCLUDE_EICSMEAR_ERHIC_PYTHIA6_H_ 0011 #define INCLUDE_EICSMEAR_ERHIC_PYTHIA6_H_ 0012 0013 #include <memory> 0014 #include <string> 0015 0016 #include <Rtypes.h> // For ClassDef macro 0017 0018 class TFile; 0019 class TTree; 0020 0021 namespace erhic { 0022 0023 class EventPythia; 0024 class EventMCFilterABC; 0025 class VirtualEvent; 0026 class VirtualEventFactory; 0027 0028 /** 0029 Runs PYTHIA 6 and builds an output tree file in the ROOT environment. 0030 The output tree is populated with EventPythia objects. 0031 PYTHIA options (including initialisation) should be provided via the 0032 ROOT interface class TPythia6 before running the tree-building. 0033 */ 0034 class Pythia6 { 0035 public: 0036 /** 0037 Constructor. 0038 0039 Associates the output of this PYTHIA run with a file. 0040 Generate events using the provided event factory. 0041 Both the file and the factory should be dynamically allocated. 0042 Pythia6 takes ownership and deletes them. 0043 Define the number of events to produce, and optionally 0044 provide a tree and branch name. 0045 */ 0046 Pythia6(TFile* file, 0047 VirtualEventFactory*, 0048 int nEvents, 0049 const std::string& treeName = "EICTree", 0050 const std::string& branchName = "event", 0051 int printInterval = 1000); 0052 0053 /** 0054 Destructor 0055 */ 0056 virtual ~Pythia6(); 0057 0058 /** 0059 Runs PYTHIA and writes output 0060 \todo Implement selection of correct event factory (either 0061 erhic::Pythia6EventBuilder or hadronic::Pythia6EventFactory) 0062 depending on requested beam types. 0063 */ 0064 virtual bool Run(); 0065 0066 protected: 0067 int mPrintInterval; 0068 TFile* mFile; //! < Pointer to the output file 0069 TTree* mTree; ///< Pointer to the generated tree 0070 const int mNEvents; ///< Number of events to produce 0071 int mNGenerated; ///< Number of events passing PYTHIA selection 0072 int mNTrials; ///< Number of events thrown by PYTHIA 0073 std::unique_ptr<VirtualEventFactory> mFactory; //! < Event factory. 0074 0075 ClassDef(erhic::Pythia6, 1) 0076 }; 0077 0078 } // namespace erhic 0079 0080 #endif // INCLUDE_EICSMEAR_ERHIC_PYTHIA6_H_
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |