Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #include <ffamodules/FlagHandler.h>
0002 #include <fun4all/Fun4AllDstOutputManager.h>
0003 #include <fun4all/Fun4AllInputManager.h>
0004 #include <fun4all/Fun4AllOutputManager.h>
0005 #include <fun4all/Fun4AllServer.h>
0006 #include <fun4allraw/Fun4AllStreamingInputManager.h>
0007 #include <fun4allraw/InputManagerType.h>
0008 #include <fun4allraw/SingleGl1PoolInput.h>
0009 #include <fun4allraw/SingleInttPoolInput.h>
0010 #include <phool/recoConsts.h>
0011 #include <GlobalVariables.C>
0012 
0013 #include <intt/InttOdbcQuery.h>  // To get data taking mode
0014 #include <inttcalib/InttCalib.h>
0015 
0016 R__LOAD_LIBRARY(libinttcalib.so)
0017 R__LOAD_LIBRARY(libintt.so)
0018 
0019 R__LOAD_LIBRARY(libfun4all.so)
0020 R__LOAD_LIBRARY(libffamodules.so)
0021 R__LOAD_LIBRARY(libfun4allraw.so)
0022 R__LOAD_LIBRARY(libffarawmodules.so)
0023 
0024 bool isGood(const string &infile);
0025 
0026 void Fun4All_Intt_Calib_Raw(
0027     int num_evt = 400000,
0028     int run_num,
0029     const std::string &hotmap_cdb_file = "hotmap.root",
0030     const std::string &hotmap_png_file = "hotmap.png",
0031     const std::string &bcomap_cdb_file = "bcomap.root",
0032     const std::string &bcomap_png_file = "bcomap.png",
0033     const string &input_gl1file = "gl1daq.list",
0034     const string &input_inttfile00 = "intt0.list",
0035     const string &input_inttfile01 = "intt1.list",
0036     const string &input_inttfile02 = "intt2.list",
0037     const string &input_inttfile03 = "intt3.list",
0038     const string &input_inttfile04 = "intt4.list",
0039     const string &input_inttfile05 = "intt5.list",
0040     const string &input_inttfile06 = "intt6.list",
0041     const string &input_inttfile07 = "intt7.list",
0042 
0043     bool isStreaming = true)
0044 {
0045   // GL1 which provides the beam clock reference (if we ran with GL1)
0046   vector<string> gl1_infile;
0047   gl1_infile.push_back(input_gl1file);
0048 
0049   // INTT
0050   vector<string> intt_infile;
0051   intt_infile.push_back(input_inttfile00);
0052   intt_infile.push_back(input_inttfile01);
0053   intt_infile.push_back(input_inttfile02);
0054   intt_infile.push_back(input_inttfile03);
0055   intt_infile.push_back(input_inttfile04);
0056   intt_infile.push_back(input_inttfile05);
0057   intt_infile.push_back(input_inttfile06);
0058   intt_infile.push_back(input_inttfile07);
0059 
0060   Fun4AllServer *se = Fun4AllServer::instance();
0061   //  se->Verbosity(1);
0062   // Input Manager
0063   recoConsts *rc = recoConsts::instance();
0064   rc->set_StringFlag("CDB_GLOBALTAG", "ProdA_2024");
0065   rc->set_uint64Flag("TIMESTAMP", run_num);
0066 
0067   Fun4AllStreamingInputManager *in = new Fun4AllStreamingInputManager("Comb");
0068   int i = 0;
0069   for (auto iter : gl1_infile)
0070   {
0071     if (isGood(iter))
0072     {
0073       SingleGl1PoolInput *gl1_sngl = new SingleGl1PoolInput("GL1_" + to_string(i));
0074       //    gl1_sngl->Verbosity(3);
0075       gl1_sngl->AddListFile(iter);
0076       in->registerStreamingInput(gl1_sngl, InputManagerType::GL1);
0077       i++;
0078     }
0079   }
0080   i = 0;
0081   for (auto iter : intt_infile)
0082   {
0083     if (isGood(iter))
0084     {
0085       cout << "opening file " << iter << endl;
0086       SingleInttPoolInput *intt_sngl = new SingleInttPoolInput("INTT_" + to_string(i));
0087       //    intt_sngl->Verbosity(3);
0088       intt_sngl->SetNegativeBco(120 - 23);
0089       intt_sngl->SetBcoRange(500);
0090       intt_sngl->AddListFile(iter);
0091       in->registerStreamingInput(intt_sngl, InputManagerType::INTT);
0092       i++;
0093     }
0094   }
0095   se->registerInputManager(in);
0096 
0097   InttCalib *inttcalib = new InttCalib();
0098   inttcalib->Verbosity(0);
0099 
0100   // Construct file paths
0101   inttcalib->SetHotMapCdbFile(hotmap_cdb_file);
0102   inttcalib->SetHotMapPngFile(hotmap_png_file);
0103   inttcalib->SetBcoMapCdbFile(bcomap_cdb_file);
0104   inttcalib->SetBcoMapPngFile(bcomap_png_file);
0105   inttcalib->SetBcoMaximumEvent(num_evt);  // default = 50k
0106   inttcalib->SetStreamingMode(isStreaming);
0107   inttcalib->SetRunNumber(run_num);
0108 
0109   inttcalib->SetHotMapCdbFile(hotmap_cdb_file);
0110   // inttcalib->SetHotMapPngFile(hotmap_save_file);
0111   inttcalib->SetBcoMapCdbFile(bcomap_cdb_file);
0112   // inttcalib->SetBcoMapPngFile(bcomap_save_file);
0113 
0114   se->registerSubsystem(inttcalib);
0115   se->run(num_evt);
0116 
0117   se->End();
0118   delete se;
0119   cout << "all done" << endl;
0120   gSystem->Exit(0);
0121 }
0122 
0123 bool isGood(const string &infile)
0124 {
0125   ifstream intest;
0126   intest.open(infile);
0127   bool goodfile = false;
0128   if (intest.is_open())
0129   {
0130     if (intest.peek() != std::ifstream::traits_type::eof())  // is it non zero?
0131     {
0132       goodfile = true;
0133     }
0134     intest.close();
0135   }
0136   return goodfile;
0137 }