Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:14:50

0001 #pragma once
0002 
0003 #include <fun4all/Fun4AllDstInputManager.h>
0004 #include <fun4all/Fun4AllInputManager.h>
0005 #include <fun4all/Fun4AllServer.h>
0006 
0007 #include <GlobalVariables.C>
0008 #include <G4_Global.C>
0009 #include <G4_Mbd.C>
0010 
0011 #include <pythiaemcalana/pythiaEMCalAna.h>
0012 
0013 R__LOAD_LIBRARY(libfun4all.so)
0014 R__LOAD_LIBRARY(libpythiaEMCalAna.so)
0015 
0016 void Fun4All_pythiaEMCalAna(
0017                      int nEvents = 1,
0018                      const char *filelist1 = "dst_calo_cluster.list",
0019                      const char *filelist2 = "dst_truth.list",
0020              const string outname = "pythiaEMCalTrees.root",
0021              bool isMC = true,
0022              bool hasPythia = true)
0023 {
0024   // this convenience library knows all our i/o objects so you don't
0025   // have to figure out what is in each dst type
0026   gSystem->Load("libg4dst.so");
0027   /* gSystem->Load("libpythiaEMCalAna.so"); */
0028 
0029   Fun4AllServer *se = Fun4AllServer::instance();
0030   se->Verbosity(0);  // set it to 1 if you want event printouts
0031 
0032   Fun4AllInputManager *inCluster = new Fun4AllDstInputManager("DSTCaloCluster");
0033   std::cout << "Adding file list " << filelist1 << std::endl;
0034   inCluster->AddListFile(filelist1,1);
0035   se->registerInputManager(inCluster);
0036 
0037   Fun4AllInputManager *inTruth = new Fun4AllDstInputManager("DSTTruth");
0038   if (isMC) {
0039       std::cout << "Adding file list " << filelist2 << std::endl;
0040       inTruth -> AddListFile(filelist2,1);
0041       se -> registerInputManager(inTruth);
0042   }
0043 
0044   pythiaEMCalAna *eval = new pythiaEMCalAna("pythiaEMCalAna", outname.c_str(), isMC, hasPythia);
0045   eval -> setGenEvent(1);
0046   se -> registerSubsystem(eval);
0047   
0048   se->run(nEvents);
0049   se->End();
0050   
0051   delete se;
0052   cout << "Analysis Completed" << endl;
0053   
0054   gSystem->Exit(0);
0055 }
0056 
0057 /*{ */
0058 
0059   
0060 /*  std::cout << "Starting...\n"; */
0061   
0062 /*  Fun4AllServer *se = Fun4AllServer::instance(); */
0063 /*  int verbosity = 0; */
0064 
0065 /*  se->Verbosity(verbosity); */
0066 /*  recoConsts *rc = recoConsts::instance(); */
0067 /*  //rc->set_IntFlag("RUNNUMBER",62); */
0068 
0069 
0070 /*  RetowerCEMC *rcemc = new RetowerCEMC(); */  
0071 /*  //rcemc->SetEnergyDistribution(1); */
0072 /*  se->registerSubsystem(rcemc); */
0073 
0074 /*  std::cout << "jet stuff...\n"; */
0075 /*  //seeds */
0076 /*  JetReco *towerjetreco = new JetReco(); */
0077 /*  towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_RETOWER)); */
0078 /*  towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER)); */
0079 /*  towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER)); */
0080 /*  towerjetreco->add_algo(new FastJetAlgo(Jet::ANTIKT, 0.2), "AntiKt_Tower_HIRecoSeedsRaw_r02"); */
0081 /*  towerjetreco->set_algo_node("ANTIKT"); */
0082 /*  towerjetreco->set_input_node("TOWER"); */
0083   
0084 /*  se->registerSubsystem(towerjetreco); */
0085   
0086   
0087 
0088 /*  std::cout << "UE subtraction stuff...\n"; */
0089 /*  //first UE subtraction pass */
0090 /*  DetermineTowerBackground *dtb = new DetermineTowerBackground(); */
0091 /*  dtb->SetBackgroundOutputName("TowerBackground_Sub1"); */
0092 /*  dtb->SetFlow(G4HIJETS::do_flow); */
0093 /*  dtb->SetSeedType(0); */
0094 /*  dtb->SetSeedJetD(3); */
0095   
0096 /*  se->registerSubsystem(dtb); */
0097 
0098 /*  CopyAndSubtractJets *casj = new CopyAndSubtractJets(); */
0099 /*  casj->SetFlowModulation(G4HIJETS::do_flow); */
0100 /*  casj->Verbosity(verbosity); */ 
0101 /*  se->registerSubsystem(casj); */
0102   
0103  
0104   
0105 /*  DetermineTowerBackground *dtb2 = new DetermineTowerBackground(); */
0106 /*  dtb2->SetBackgroundOutputName("TowerBackground_Sub2"); */
0107 /*  dtb2->SetFlow(G4HIJETS::do_flow); */
0108 /*  dtb2->SetSeedType(1); */
0109 /*  dtb2->SetSeedJetPt(7); */
0110 /*  dtb2->Verbosity(verbosity); */ 
0111 /*  se->registerSubsystem(dtb2); */
0112 
0113 /*  //subtract UE from towers */
0114 /*  SubtractTowers *st = new SubtractTowers(); */
0115 /*  st->SetFlowModulation(G4HIJETS::do_flow); */
0116 /*  st->Verbosity(verbosity); */
0117 /*  se->registerSubsystem(st); */
0118 
0119 /*  std::cout << "ClusterIso stuff...\n"; */
0120 /*   //I think this goes here? */
0121 /*  ClusterIso *makeClusterEt = new ClusterIso("pythiaEMCalAna",0,3,1,0); */
0122 /*  /1* makeClusterEt -> Verbosity(0); *1/ */
0123 /*  /1* se->registerSubsystem(makeClusterEt); *1/ */
0124 /*  ///??? */
0125 /*  //substract UE from jets */
0126 /*  /1*CopyAndSubtractJets *casj = new CopyAndSubtractJets(); */
0127 /*  casj->SetFlowModulation(G4HIJETS::do_flow); */
0128   
0129 /*  se->registerSubsystem(casj); */
0130 
0131 /*  //second pass of UE subtraction */
0132 /*  DetermineTowerBackground *dtb2 = new DetermineTowerBackground(); */
0133 /*  dtb2->SetBackgroundOutputName("TowerBackground_Sub2"); */
0134 /*  dtb2->SetFlow(G4HIJETS::do_flow); */
0135 /*  dtb2->SetSeedType(1); */
0136 /*  dtb2->SetSeedJetPt(7); */
0137   
0138 /* se->registerSubsystem(dtb2); */
0139   
0140 /*  //now we build our regular jets. Not used for eT analysis right now */
0141 /*  //but could add in function easily. */ 
0142 /*  /1*towerjetreco = new JetReco(); */
0143 /*  towerjetreco->add_input(new TowerJetInput(Jet::CEMC_TOWER_SUB1)); */
0144 /*  towerjetreco->add_input(new TowerJetInput(Jet::HCALIN_TOWER_SUB1)); */
0145 /*  towerjetreco->add_input(new TowerJetInput(Jet::HCALOUT_TOWER_SUB1)); */
0146 /*  towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.2, 1), "AntiKt_Tower_r02_Sub1"); */
0147 /*  towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.3, 1), "AntiKt_Tower_r03_Sub1"); */
0148 /*  towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.4, 1), "AntiKt_Tower_r04_Sub1"); */
0149 /*  towerjetreco->add_algo(new FastJetAlgoSub(Jet::ANTIKT, 0.5, 1), "AntiKt_Tower_r05_Sub1"); */
0150 /*  towerjetreco->set_algo_node("ANTIKT"); */
0151 /*  towerjetreco->set_input_node("TOWER"); */
0152 /*  towerjetreco->Verbosity(verbosity); */
0153 /*  se->registerSubsystem(towerjetreco); */
0154   
0155  
0156 /*  std::cout << "more stuff...\n"; */
0157 
0158 /*  Fun4AllInputManager *in = new Fun4AllDstInputManager("DSTcalo"); */
0159 /*  in->AddListFile(filelist1,1); */
0160 /*  se->registerInputManager(in); */
0161 
0162 /*  Fun4AllInputManager *in2 = new Fun4AllDstInputManager("DSTTruth"); */
0163 /*  in2 -> AddListFile(filelist2,1); */
0164 /*  se -> registerInputManager(in2); */
0165   
0166 /*  std::cout << "pythiaEMCalAna stuff...\n"; */
0167 
0168 /*  pythiaEMCalAna *eval = new pythiaEMCalAna(outname.c_str()); */
0169 /*  eval -> setGenEvent(1); */
0170 /*  se -> registerSubsystem(eval); */
0171 
0172 /*  std::cout << "running events...\n"; */
0173 
0174 /*  se -> run(nEvents); */
0175 /*  std::cout << "ending...\n"; */
0176 /*  se -> End(); */
0177     
0178 /*  std::cout << "finished!\n"; */
0179 
0180 /*} */