Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:22:08

0001 int Min_cemc_layer = 1;
0002 int Max_cemc_layer = 1;
0003 int Fun4All_G4_Clusters(
0004                int nEvents = 100,
0005                const char * inputFile = "/phenix/sim01/sPHENIX/pythia/reference_design/fieldmap/G4Hits_Pythia_0.root",
0006                const char * outputFile = "G4sPHENIXClusters.root"
0007                )
0008 {
0009   //---------------
0010   // Load libraries
0011   //---------------
0012 
0013   gSystem->Load("libfun4all.so");
0014   gSystem->Load("libg4detectors.so");
0015   gSystem->Load("libphhepmc.so");
0016   gSystem->Load("libg4testbench.so");
0017   gSystem->Load("libg4hough.so");
0018   gSystem->Load("libcemc.so");
0019   gSystem->Load("libg4eval.so");
0020 
0021   Fun4AllServer *se = Fun4AllServer::instance();
0022   se->Verbosity(0);
0023 
0024   //------------------
0025   // Detector Division
0026   //------------------
0027 
0028   PHG4CylinderCellReco *cemc_cells = new PHG4CylinderCellReco("CEMCCYLCELLRECO");
0029   cemc_cells->Detector("CEMC");
0030   for (int i = Min_cemc_layer; i <= Max_cemc_layer; i++) {
0031     cemc_cells->etaphisize(i, 0.024, 0.024);
0032   }
0033   se->registerSubsystem(cemc_cells);
0034 
0035   //-----------------------------
0036   // CEMC towering and clustering
0037   //-----------------------------
0038   RawTowerBuilder *TowerBuilder = new RawTowerBuilder("EmcRawTowerBuilder");
0039   TowerBuilder->Detector("CEMC");
0040   TowerBuilder->Verbosity(0);
0041   se->registerSubsystem( TowerBuilder );
0042       
0043   RawClusterBuilder* ClusterBuilder = new RawClusterBuilder("EmcRawClusterBuilder");
0044   ClusterBuilder->Detector("CEMC");
0045   ClusterBuilder->Verbosity(0);
0046   se->registerSubsystem( ClusterBuilder );
0047 
0048 
0049       // Hits file
0050       Fun4AllInputManager *hitsin = new Fun4AllDstInputManager("DSTin");
0051       hitsin->fileopen(inputFile);
0052       se->registerInputManager(hitsin);
0053       Fun4AllDstOutputManager *out = new Fun4AllDstOutputManager("DSTOUT", outputFile);
0054       out->AddNode("G4HIT_CEMC");
0055       out->AddNode("G4CELL_CEMC");
0056       out->AddNode("TOWER_CEMC");
0057       out->AddNode("CLUSTER_CEMC");
0058    se->registerOutputManager(out);
0059 
0060   //-----------------
0061   // Event processing
0062   //-----------------
0063   se->run(nEvents);
0064 
0065   //-----
0066   // Exit
0067   //-----
0068 
0069   se->End();
0070   std::cout << "All done" << std::endl;
0071   delete se;
0072   gSystem->Exit(0);
0073 }