Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-10-16 08:23:43

0001 #include <fun4all/SubsysReco.h>
0002 #include <fun4all/Fun4AllServer.h>
0003 
0004 #include <fun4allraw/Fun4AllStreamingInputManager.h>
0005 #include <fun4allraw/SingleMicromegasPoolInput.h>
0006 
0007 #include <phool/recoConsts.h>
0008 
0009 #include <micromegas/MicromegasCombinedDataCalibration.h>
0010 #include <micromegas/MicromegasClusterizer.h>
0011 
0012 #include <GlobalVariables.C>
0013 
0014 R__LOAD_LIBRARY(libfun4all.so)
0015 R__LOAD_LIBRARY(libfun4allraw.so)
0016 
0017 //____________________________________________________________________
0018 int Fun4All_TpotCalibration(
0019   const int nEvents = 1000,
0020   const char* inputFile = "/sphenix/lustre01/sphnxpro/physics/TPOT/calib/TPOT_ebdc39_calib-00074871-0000.evt",
0021   const char* calibrationFile = "TPOT_Pedestal-00074871-0000.root",
0022   const char* evaluationFile = "MicromegasCombinedDataCalibration-00074871-0000.root"
0023   )
0024 {
0025   // print inputs
0026   std::cout << "Fun4All_TpotCalibration - nEvents: " << nEvents << std::endl;
0027   std::cout << "Fun4All_TpotCalibration - inputFile: " << inputFile << std::endl;
0028   std::cout << "Fun4All_TpotCalibration - calibrationFile: " << calibrationFile << std::endl;
0029   std::cout << "Fun4All_TpotCalibration - evaluationFile: " << evaluationFile << std::endl;
0030 
0031   // server
0032   auto se = Fun4AllServer::instance();
0033   se->Verbosity(1);
0034 
0035   // reco const
0036   auto rc = recoConsts::instance();
0037 
0038   // condition database
0039   Enable::CDB = true;
0040   rc->set_StringFlag("CDB_GLOBALTAG",CDB::global_tag);
0041   rc->set_uint64Flag("TIMESTAMP",CDB::timestamp);
0042 
0043   //input
0044   auto in = new Fun4AllStreamingInputManager;
0045   se->registerInputManager(in);
0046   if( true )
0047   {
0048     // Micromegas single input
0049     auto single = new SingleMicromegasPoolInput;
0050     single->AddFile(inputFile);
0051     in->registerStreamingInput(single, InputManagerType::MICROMEGAS);
0052   }
0053 
0054   {
0055     // micromegas raw data calibration
0056     auto micromegasCombinedDataCalibration = new MicromegasCombinedDataCalibration;
0057     micromegasCombinedDataCalibration->set_sample_min(0);
0058     micromegasCombinedDataCalibration->set_sample_max(20);
0059 
0060     // calibration output
0061     micromegasCombinedDataCalibration->set_calibration_file(calibrationFile);
0062 
0063     // evaluation outpue
0064     micromegasCombinedDataCalibration->set_do_evaluation(true);
0065     micromegasCombinedDataCalibration->set_evaluation_file(evaluationFile);
0066 
0067     se->registerSubsystem( micromegasCombinedDataCalibration );
0068   }
0069 
0070   // process events
0071   se->run(nEvents);
0072 
0073   // terminate
0074   se->End();
0075   se->PrintTimer();
0076 
0077   std::cout << "All done" << std::endl;
0078   delete se;
0079   gSystem->Exit(0);
0080   return 0;
0081 }
0082 
0083 // This function is only used to test if we can load this as root6 macro
0084 // without running into unresolved libraries and include files
0085 void RunFFALoadTest() {}