Back to home page

sPhenix code displayed by LXR

 
 

    


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

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_New_Year2_Fitting(int nEvents = 100,
0032                const std::string inlist = "files.list",
0033                            const std::string &outfile = "DST_CALOFITTING_run2auau_ana487_2024p018_v001",
0034                            const std::string &outfile_hist = "HIST_CALOFITTINGQA_run2auau_ana487_2024p018_v001",
0035                            const std::string &dbtag = "ProdA_2024")
0036 {
0037   gSystem->Load("libg4dst.so");
0038 
0039   Fun4AllServer *se = Fun4AllServer::instance();
0040   se->Verbosity(1);
0041   se->VerbosityDownscale(1000);
0042 
0043   recoConsts *rc = recoConsts::instance();
0044 
0045   // conditions DB global tag
0046   rc->set_StringFlag("CDB_GLOBALTAG", dbtag);
0047   CDBInterface::instance()->Verbosity(1);
0048 
0049   FlagHandler *flag = new FlagHandler();
0050   se->registerSubsystem(flag);
0051 
0052   // Get info from DB and store in DSTs
0053   TriggerRunInfoReco *triggerinfo = new TriggerRunInfoReco();
0054   se->registerSubsystem(triggerinfo);
0055 
0056   Process_Calo_Fitting();
0057 
0058   ///////////////////////////////////
0059   // Validation
0060   CaloFittingQA *ca = new CaloFittingQA("CaloFittingQA");
0061   se->registerSubsystem(ca);
0062 
0063 // loop over all files in file list and create an input manager for each one  
0064   Fun4AllInputManager *In = nullptr;
0065   ifstream infile;
0066   infile.open(inlist);
0067   int iman = 0;
0068   std::string line;
0069   bool first {true};
0070   int runnumber = 0;
0071   int segment = 99999;
0072   if (infile.is_open())
0073   {
0074     while (std::getline(infile, line))
0075     {
0076       if (line[0] == '#')
0077       {
0078     std::cout << "found commented out line " << line << std::endl;
0079     continue;
0080       }
0081       // extract run number from first not commented out file in list
0082       if (first)
0083       {
0084     pair<int, int> runseg = Fun4AllUtils::GetRunSegment(line);
0085     runnumber = runseg.first;
0086     segment = runseg.second;
0087     rc->set_uint64Flag("TIMESTAMP", runnumber);
0088     first = false;
0089       }
0090       std::string magname = "DSTin_" + std::to_string(iman);
0091       In = new Fun4AllDstInputManager(magname);
0092       In->Verbosity(1);
0093       In->AddFile(line);
0094       se->registerInputManager(In);
0095       iman++;
0096     }
0097     infile.close();
0098   }
0099   
0100 // this strips all nodes under the Packets PHCompositeNode
0101 // (means removes all offline packets)
0102   char dstoutfile[500];
0103   sprintf(dstoutfile,"%s-%08d-%05d.root",outfile.c_str(), runnumber,segment);
0104   Fun4AllDstOutputManager *out = new Fun4AllDstOutputManager("DSTOUT", dstoutfile);
0105   out->StripCompositeNode("Packets");
0106   se->registerOutputManager(out);
0107   // se->Print();
0108   if (nEvents < 0)
0109   {
0110     return;
0111   }
0112   se->run(nEvents);
0113   se->End();
0114   sprintf(dstoutfile,"%s-%08d-%05d.root",outfile_hist.c_str(), runnumber,segment);
0115   QAHistManagerDef::saveQARootFile(dstoutfile);
0116 
0117   CDBInterface::instance()->Print();  // print used DB files
0118   se->PrintTimer();
0119   delete se;
0120   std::cout << "All done!" << std::endl;
0121   gSystem->Exit(0);
0122 }
0123 #endif