Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:20:24

0001 #ifndef FUN4ALL_YEAR2_FITTING_C
0002 #define FUN4ALL_YEAR2_FITTING_C
0003 
0004 #include <Calo_Fitting.C>
0005 #include <QA.C>
0006 
0007 #include <calotrigger/TriggerRunInfoReco.h>
0008 
0009 #include <calovalid/CaloFittingQA.h>
0010 
0011 #include <ffamodules/CDBInterface.h>
0012 #include <ffamodules/FlagHandler.h>
0013 #include <ffamodules/HeadReco.h>
0014 #include <ffamodules/SyncReco.h>
0015 
0016 #include <fun4all/Fun4AllDstInputManager.h>
0017 #include <fun4all/Fun4AllDstOutputManager.h>
0018 #include <fun4all/Fun4AllInputManager.h>
0019 #include <fun4all/Fun4AllRunNodeInputManager.h>
0020 #include <fun4all/Fun4AllServer.h>
0021 #include <fun4all/Fun4AllUtils.h>
0022 #include <fun4all/SubsysReco.h>
0023 
0024 #include <phool/recoConsts.h>
0025 
0026 R__LOAD_LIBRARY(libfun4allraw.so)
0027 R__LOAD_LIBRARY(libcalovalid.so)
0028 R__LOAD_LIBRARY(libcalotrigger.so)
0029 
0030 // this pass containis the reco process that's stable wrt time stamps(raw tower building)
0031 void Fun4All_Year2_Fitting(int nEvents = 100,
0032                            const std::string &fname = "DST_TRIGGERED_EVENT_run2pp_ana451_2024p009-00047748-00000.root",
0033                            const std::string &outfile = "DST_CALOFITTING_run2pp_ana451_2024p009-00047748-00000.root",
0034                            const std::string &outfile_hist = "HIST_CALOFITTINGQA_run2pp_ana451_2024p009-00047748-00000.root",
0035                            const std::string &dbtag = "ProdA_2024")
0036 {
0037   gSystem->Load("libg4dst.so");
0038 
0039   Fun4AllServer *se = Fun4AllServer::instance();
0040   se->Verbosity(1);
0041 
0042   recoConsts *rc = recoConsts::instance();
0043 
0044   pair<int, int> runseg = Fun4AllUtils::GetRunSegment(fname);
0045   int runnumber = runseg.first;
0046 
0047   // conditions DB flags and timestamp
0048   rc->set_StringFlag("CDB_GLOBALTAG", dbtag);
0049   rc->set_uint64Flag("TIMESTAMP", runnumber);
0050   CDBInterface::instance()->Verbosity(1);
0051 
0052   FlagHandler *flag = new FlagHandler();
0053   se->registerSubsystem(flag);
0054 
0055   // Get info from DB and store in DSTs
0056   TriggerRunInfoReco *triggerinfo = new TriggerRunInfoReco();
0057   se->registerSubsystem(triggerinfo);
0058 
0059   Process_Calo_Fitting();
0060 
0061   ///////////////////////////////////
0062   // Validation
0063   CaloFittingQA *ca = new CaloFittingQA("CaloFittingQA");
0064   se->registerSubsystem(ca);
0065 
0066   Fun4AllInputManager *In = new Fun4AllDstInputManager("in");
0067   In->AddFile(fname);
0068   se->registerInputManager(In);
0069 
0070   Fun4AllDstOutputManager *out = new Fun4AllDstOutputManager("DSTOUT", outfile);
0071   out->StripNode("CEMCPackets");
0072   out->StripNode("HCALPackets");
0073   out->StripNode("ZDCPackets");
0074   out->StripNode("SEPDPackets");
0075   se->registerOutputManager(out);
0076 
0077   se->run(nEvents);
0078   se->End();
0079 
0080   QAHistManagerDef::saveQARootFile(outfile_hist);
0081 
0082   CDBInterface::instance()->Print();  // print used DB files
0083   se->PrintTimer();
0084   delete se;
0085   std::cout << "All done!" << std::endl;
0086   gSystem->Exit(0);
0087 }
0088 #endif