File indexing completed on 2026-04-04 08:09:41
0001 #include <fun4all/Fun4AllDstInputManager.h>
0002 #include <fun4all/Fun4AllInputManager.h>
0003 #include <fun4all/Fun4AllServer.h>
0004 #include <fun4all/SubsysReco.h>
0005
0006 #include <TSystem.h>
0007
0008 #include <upcmeson/UPCMeson.h>
0009 #include <trackingdiagnostics/BeamCrossingAnalysis.h>
0010
0011 R__LOAD_LIBRARY(libfun4all.so)
0012 R__LOAD_LIBRARY(libg4dst.so)
0013 R__LOAD_LIBRARY(libUPCMeson.so)
0014 R__LOAD_LIBRARY(libTrackingDiagnostics.so)
0015
0016
0017 void Fun4All_UPCMeson(const int nevnt = 0,
0018 const std::string& inputfile = "G4sPHENIX.root",
0019 std::string outputfile = "")
0020 {
0021 Fun4AllServer *se = Fun4AllServer::instance();
0022
0023 if ( outputfile.size() == 0 )
0024 {
0025 outputfile = "upcmeson_" + inputfile;
0026 }
0027
0028 UPCMeson *upcmeson = new UPCMeson("upcmeson", outputfile);
0029
0030 upcmeson->analyzeTracks(true);
0031 upcmeson->analyzeTruth(false);
0032 upcmeson->SetGuessMass(0.13957039);
0033 se->registerSubsystem(upcmeson);
0034
0035 BeamCrossingAnalysis *bcross = new BeamCrossingAnalysis("BEAMCROSS");
0036 bcross->set_output_file("beamcross.root");
0037 se->registerSubsystem(bcross);
0038
0039 Fun4AllInputManager *in = new Fun4AllDstInputManager("DSTin");
0040
0041
0042 if ( inputfile.substr(inputfile.size()-5,inputfile.size()-1) == ".root" )
0043 {
0044
0045 in->AddFile(inputfile);
0046
0047
0048
0049
0050 }
0051 else if ( inputfile.substr(inputfile.size()-5,inputfile.size()-1) == ".list" )
0052 {
0053 in->AddListFile(inputfile);
0054 }
0055 se->registerInputManager(in);
0056
0057 se->run(nevnt);
0058 se->End();
0059 delete se;
0060
0061 cout <<"All done. Exiting..."<<endl;
0062
0063 gSystem->Exit(0);
0064 }
0065