Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:12:20

0001 #include <caloreco/RawClusterPositionCorrection.h>
0002 
0003 #include <ffamodules/FlagHandler.h>
0004 #include <ffamodules/HeadReco.h>
0005 #include <ffamodules/SyncReco.h>
0006 
0007 #include <fun4allraw/Fun4AllPrdfInputManager.h>
0008 
0009 #include <fun4all/Fun4AllDstInputManager.h>
0010 #include <fun4all/Fun4AllDstOutputManager.h>
0011 #include <fun4all/Fun4AllInputManager.h>
0012 #include <fun4all/Fun4AllRunNodeInputManager.h>
0013 #include <fun4all/Fun4AllServer.h>
0014 #include <fun4all/Fun4AllUtils.h>
0015 #include <fun4all/SubsysReco.h>
0016 
0017 #include <phool/recoConsts.h>
0018 
0019 #include <ffamodules/CDBInterface.h>
0020 #include <GlobalVariables.C>
0021 
0022 
0023 R__LOAD_LIBRARY(libcdbobjects)
0024 
0025 R__LOAD_LIBRARY(libfun4all.so)
0026 R__LOAD_LIBRARY(libfun4allraw.so)
0027 R__LOAD_LIBRARY(libcalo_reco.so)
0028 R__LOAD_LIBRARY(libffamodules.so)
0029 
0030 #include <caloana/CaloAna.h>
0031 R__LOAD_LIBRARY(libcaloana.so)
0032 
0033 void Fun4All_EMCal_sp(int nevents = 50000, const std::string &fname = "inputdata_sp.txt",const std::string &fnamehits = "g4hits.list")
0034 {
0035 
0036   Fun4AllServer *se = Fun4AllServer::instance();
0037   se->Verbosity(0);
0038 
0039   // se->Verbosity(verbosity);
0040   recoConsts *rc = recoConsts::instance();
0041 
0042   ifstream file(fname);
0043   string first_file;
0044   getline(file, first_file);
0045 
0046   //===============
0047   // conditions DB flags
0048   //===============
0049   pair<int, int> runseg = Fun4AllUtils::GetRunSegment(first_file);
0050   int runnumber = runseg.first;
0051   cout << "run number = " << runnumber << endl;
0052 
0053   // global tag
0054   rc->set_StringFlag("CDB_GLOBALTAG", "MDC2");
0055   // // 64 bit timestamp
0056   rc->set_uint64Flag("TIMESTAMP", runnumber);
0057 
0058   Fun4AllInputManager *in = new Fun4AllDstInputManager("DST_TOWERS");
0059   in->AddListFile(fname);
0060   se->registerInputManager(in);
0061 
0062   Fun4AllInputManager *in2 = new Fun4AllDstInputManager("DST_TOWERS2");
0063   in2->AddListFile(fnamehits);
0064   se->registerInputManager(in2);
0065 
0066   std::string filename = first_file.substr(first_file.find_last_of("/\\") + 1);
0067   std::string OutFile = Form("OUTHIST_iter_%s",filename.c_str());
0068 /*
0069   std::cout << "Applying Position Dependent Correction" << std::endl;
0070   RawClusterPositionCorrection *clusterCorrection = new RawClusterPositionCorrection("CEMC");
0071   //clusterCorrection->set_UseTowerInfo(1);  
0072   se->registerSubsystem(clusterCorrection);
0073 */
0074 
0075   ///////////////////
0076   // analysis modules
0077   CaloAna *ca = new CaloAna("calomodulename", OutFile);
0078   ca->set_timing_cut_width(16);
0079   ca->apply_vertex_cut(false);
0080   ca->set_vertex_cut(20.);
0081   se->registerSubsystem(ca);
0082 
0083   se->run(nevents);
0084   se->End();
0085   se->PrintTimer();
0086   delete se;
0087 
0088   TFile* f_done_signal = new TFile("DONE.root","recreate");
0089   std::cout << "All done!" << std::endl;
0090   gSystem->Exit(0);
0091 
0092 }
0093