Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:14:28

0001 #include <string>
0002 
0003 using namespace std;
0004 
0005 void Fun4All_TestBeam(int nEvents = 10,
0006                       const char *input_file = "/sphenix/data/data03//phnxreco/sphenix/t1044/fnal/beam/beam_00000499-0000.prdf",
0007                                             const char *output_file = "beam_00000499.root"
0008                       )
0009 {
0010   gSystem->Load("libfun4all");
0011   gSystem->Load("libPrototype4.so");
0012     gSystem->Load("libMvtxPrototype1.so");
0013 
0014   Fun4AllServer *se = Fun4AllServer::instance();
0015   //se->Verbosity(0);
0016   se->Verbosity(Fun4AllServer::VERBOSITY_SOME);
0017 
0018     char ifile[strlen(input_file)+1]; // + 1 for the \0 which marks the end of string
0019     strcpy(ifile,input_file);
0020     strtok(ifile,"_");
0021     int runnumber = atoi(strtok(0,"-"));
0022     int segnumber = atoi(strtok(strtok(0,"-"),"."));
0023     cout << "runnumber: " << runnumber << " segment " << segnumber << endl;
0024 
0025   recoConsts *rc = recoConsts::instance();
0026   rc->set_IntFlag("RUNNUMBER",runnumber);
0027 
0028     MvtxRunInfoUnpackPRDF *unpack_run = new MvtxRunInfoUnpackPRDF();
0029     unpack_run->Verbosity(0);
0030     se->registerSubsystem(unpack_run);
0031 
0032     MvtxUnpackPRDF *unpack = new MvtxUnpackPRDF();
0033     if ( runnumber>=89 && runnumber<=97 ){ //brick runs
0034         unpack->SetCutOccupPerChip(1e-3);
0035     }else{
0036         unpack->SetCutOccupPerChip(1e-4);
0037     }
0038     unpack->Verbosity(0);
0039     se->registerSubsystem(unpack);
0040 
0041     MvtxApplyHotDead *hotdead = new MvtxApplyHotDead("MvtxApplyHotDead",Form("hotmap/hotmap_testbeam_%08d.txt",runnumber));
0042     hotdead->Verbosity(0);
0043     hotdead->PrintHotDeadMap();
0044     se->registerSubsystem(hotdead);
0045 
0046     MvtxClusterizer *clus = new MvtxClusterizer();
0047     clus->Verbosity(0);
0048     se->registerSubsystem(clus);
0049 
0050     MvtxAlign *align = new MvtxAlign("MvtxAlign");
0051     align->SetAlignmentParFileDir("beamcenter/");
0052     align->PrintAlignmentPars();
0053     align->Verbosity(0);
0054     se->registerSubsystem(align);
0055 
0056     MvtxQAHisto *qa = new MvtxQAHisto();
0057     qa->set_filename(Form("MvtxQAHisto-%08d-%04d.root",runnumber,segnumber+200));
0058     se->registerSubsystem(qa);
0059 
0060   Fun4AllInputManager *in = new Fun4AllPrdfInputManager("PRDFin");
0061   in->fileopen(input_file);
0062   se->registerInputManager(in);
0063 
0064     //Fun4AllDstOutputManager *out_Manager = new Fun4AllDstOutputManager("DSTOUT",output_file);
0065     //se->registerOutputManager(out_Manager);
0066 
0067   se->run(nEvents);
0068 
0069   se->End();
0070 }