Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #pragma once
0002 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,00,0)
0003 #include <fun4all/SubsysReco.h>
0004 #include <fun4all/Fun4AllServer.h>
0005 #include <fun4all/Fun4AllInputManager.h>
0006 #include <fun4all/Fun4AllDstInputManager.h>
0007 
0008 #include <fun4all/Fun4AllDstOutputManager.h>
0009 #include <fun4all/Fun4AllOutputManager.h>
0010 #include <fun4all/Fun4AllServer.h>
0011 
0012 #include <phool/PHRandomSeed.h>
0013 #include <phool/recoConsts.h>
0014 
0015 #include <g4jets/FastJetAlgo.h>
0016 #include <g4jets/JetReco.h>
0017 #include <g4jets/TowerJetInput.h>
0018 #include <g4jets/TruthJetInput.h>
0019 
0020 #include <g4centrality/PHG4CentralityReco.h>
0021 
0022 #include <jetbackground/CopyAndSubtractJets.h>
0023 #include <jetbackground/DetermineTowerBackground.h>
0024 #include <jetbackground/FastJetAlgoSub.h>
0025 #include <jetbackground/RetowerCEMC.h>
0026 #include <jetbackground/SubtractTowers.h>
0027 #include <jetbackground/SubtractTowersCS.h>
0028 
0029 #include <jetunderlyingevent/JetUnderlyingEvent.h>
0030 
0031 R__LOAD_LIBRARY(libfun4all.so)
0032 R__LOAD_LIBRARY(libg4jets.so)
0033 R__LOAD_LIBRARY(libjetbackground.so)
0034 R__LOAD_LIBRARY(JetUnderlyingEvent.so)
0035 R__LOAD_LIBRARY(libg4centrality.so)
0036 R__LOAD_LIBRARY(libg4dst.so)
0037 
0038 namespace Enable
0039 {
0040   bool HIJETS = true;
0041   int HIJETS_VERBOSITY = 1;
0042 }  // namespace Enable
0043 
0044 namespace G4HIJETS
0045 {
0046   bool do_flow = false;
0047   bool do_CS = false;
0048 }  // namespace G4HIJETS
0049 #endif
0050 
0051 
0052 void Fun4All_JetVal( const char *filelistcalo = "dst_calo_cluster.list",
0053              const char *filelistbbc = "dst_bbc_g4hit.list",
0054              const char *outname = "output_test.root")
0055 
0056 {
0057 
0058   
0059   Fun4AllServer *se = Fun4AllServer::instance();
0060   int verbosity = 0;
0061 
0062   se->Verbosity(verbosity);
0063   recoConsts *rc = recoConsts::instance();
0064 
0065   PHG4CentralityReco *cent = new PHG4CentralityReco();
0066   cent->Verbosity(0);
0067   cent->GetCalibrationParameters().ReadFromFile("centrality", "xml", 0, 0, string(getenv("CALIBRATIONROOT")) + string("/Centrality/"));
0068   se->registerSubsystem( cent );
0069 
0070   RetowerCEMC *rcemc = new RetowerCEMC(); 
0071   rcemc->Verbosity(verbosity); 
0072   se->registerSubsystem(rcemc);
0073 
0074   JetReco *towerjetreco = new JetReco();
0075   towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_RETOWER));
0076   towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER));
0077   towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER));
0078   towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Tower_HIRecoSeedsRaw_r02");
0079   towerjetreco->set_algo_node("ANTIKT");
0080   towerjetreco->set_input_node("TOWER");
0081   towerjetreco->Verbosity(verbosity); 
0082   se->registerSubsystem(towerjetreco);
0083   
0084   DetermineTowerBackground *dtb = new DetermineTowerBackground();
0085   dtb->SetBackgroundOutputName("TowerBackground_Sub1");
0086   dtb->SetFlow(G4HIJETS::do_flow);
0087   dtb->SetSeedType(0);
0088   dtb->SetSeedJetD(3);
0089   dtb->Verbosity(verbosity); 
0090   se->registerSubsystem(dtb);
0091   
0092   CopyAndSubtractJets *casj = new CopyAndSubtractJets();
0093   casj->SetFlowModulation(G4HIJETS::do_flow);
0094   casj->Verbosity(verbosity); 
0095   se->registerSubsystem(casj);
0096   
0097   DetermineTowerBackground *dtb2 = new DetermineTowerBackground();
0098   dtb2->SetBackgroundOutputName("TowerBackground_Sub2");
0099   dtb2->SetFlow(G4HIJETS::do_flow);
0100   dtb2->SetSeedType(1);
0101   dtb2->SetSeedJetPt(7);
0102   dtb2->Verbosity(verbosity); 
0103   se->registerSubsystem(dtb2);
0104   
0105   SubtractTowers *st = new SubtractTowers();
0106   st->SetFlowModulation(G4HIJETS::do_flow);
0107   st->Verbosity(verbosity);
0108   se->registerSubsystem(st);
0109   
0110   towerjetreco = new JetReco();
0111   towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_SUB1));
0112   towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER_SUB1));
0113   towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER_SUB1));
0114   towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.2, 1), "AntiKt_Tower_r02_Sub1");
0115   towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.3, 1), "AntiKt_Tower_r03_Sub1");
0116   towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.4, 1), "AntiKt_Tower_r04_Sub1");
0117   towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.5, 1), "AntiKt_Tower_r05_Sub1");
0118   towerjetreco->set_algo_node("ANTIKT");
0119   towerjetreco->set_input_node("TOWER");
0120   towerjetreco->Verbosity(verbosity);
0121   se->registerSubsystem(towerjetreco);
0122   
0123 
0124 
0125   JetUnderlyingEvent *myJetVal = new JetUnderlyingEvent("name",outname);
0126   se->registerSubsystem(myJetVal);
0127   
0128   Fun4AllInputManager *in2 = new Fun4AllDstInputManager("DSTcalo");
0129   in2->AddListFile(filelistcalo,1);
0130   se->registerInputManager(in2);
0131 
0132   Fun4AllInputManager *in3 = new Fun4AllDstInputManager("DSTbbc");
0133   in3->AddListFile(filelistbbc,1);
0134   se->registerInputManager(in3);
0135 
0136 
0137   
0138   se->run(-1);
0139   se->End();
0140 
0141   gSystem->Exit(0);
0142   return 0;
0143 
0144 }