ParfenovPeter 1 год назад
Родитель
Сommit
25cb1065b7

+ 7 - 7
CreateExtendedAT.C

@@ -252,15 +252,15 @@ void CreateExtendedAT(TString iFileName, TString oFileName)
       float fhcal_sign = ((int)in_fhcal_mod.Value(ifhcal_number) < 45) ? -1. : 1.;
       out_fhcal_mod.SetValue(ifhcal_signal_eta_signed, fhcal_sign*in_fhcal_mod.Value(ifhcal_signal));
     } // End loop over FHCal modules
-    // outTree->Fill();
+    outTree->Fill();
   }   // End loop over events
 
-  // outFile->cd();
-  // outTree->Print();
-  // outTree->Write();
-  // if (isDataHeaderDefined) dataHeader->Write("DataHeader");
-  // out_config->Write("Configuration");
-  // outFile->Close();
+  outFile->cd();
+  outTree->Print();
+  outTree->Write();
+  in_data_header->Write("DataHeader");
+  out_config->Write("Configuration");
+  outFile->Close();
 
   timer.Stop();
   timer.Print();

+ 1 - 1
preprocessing/AnalysisTreeUserLinkDef.h

@@ -5,6 +5,6 @@
 #pragma link C++ nestedclasses;
 
 //#pragma link C++ class UserTaskRead++;
-#pragma link C++ class UserTaskWrite++;
+//#pragma link C++ class UserTaskWrite++;
 
 #endif

+ 18 - 16
preprocessing/CMakeLists.txt

@@ -4,14 +4,8 @@
 cmake_minimum_required(VERSION 3.5)
 
 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-include( MunkeiVersionFromGit )
-version_from_git(
-        LOG       ON
-        TIMESTAMP "%Y%m%d%H%M%S"
-)
 
 project(AT_UserTasks
-        VERSION ${VERSION}
         LANGUAGES CXX)
 
 # by default build optimized code
@@ -51,25 +45,33 @@ message(STATUS "Using ROOT: ${ROOT_VERSION} <${ROOT_CONFIG}>")
 include_directories(${ROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} core)
 include(${ROOT_USE_FILE})
 
-#---Locate AnalysisTree library
-find_library(AnalysisTree NAMES AnalysisTreeBase AnalysisTreeInfra)
-if (AnalysisTree)
-  message(STATUS "AnalysisTree is found: ${AnalysisTree}")
+#---Locate AnalysisTree libraries
+find_library(AnalysisTreeBase NAMES AnalysisTreeBase PATHS $ENV{ANALYSISTREE_LIB})
+find_library(AnalysisTreeInfra NAMES AnalysisTreeInfra PATHS $ENV{ANALYSISTREE_LIB})
+if (AnalysisTreeBase)
+  message(STATUS "AnalysisTreeBase is found: ${AnalysisTreeBase}")
 endif()
-if (NOT AnalysisTree)
-  message(FATAL_ERROR "Error: AnalysisTree library wasn't found!")
+if (NOT AnalysisTreeBase)
+  message(FATAL_ERROR "Error: AnalysisTreeBase library wasn't found!")
 endif()
+if (AnalysisTreeInfra)
+  message(STATUS "AnalysisTreeInfra is found: ${AnalysisTreeInfra}")
+endif()
+if (NOT AnalysisTreeInfra)
+  message(FATAL_ERROR "Error: AnalysisTreeInfra library wasn't found!")
+endif()
+
+include_directories($ENV{ANALYSISTREE_INC}/AnalysisTree)
 
 set(SOURCES
         UserTaskWrite.cpp
-        UserTaskRead.cpp
         )
 
 message(STATUS "CMAKE_PROJECT_NAME ${CMAKE_PROJECT_NAME}")
 
 string(REPLACE ".cpp" ".hpp" HEADERS "${SOURCES}")
 
-include_directories(${CMAKE_SOURCE_DIR}/core ${CMAKE_SOURCE_DIR}/infra ${CMAKE_CURRENT_SOURCE_DIR} $<$<BOOL:${Boost_FOUND}>:${Boost_INCLUDE_DIRS}>)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR} $<$<BOOL:${Boost_FOUND}>:${Boost_INCLUDE_DIRS}>)
 add_library(AnalysisTreeUser SHARED ${SOURCES} G__AnalysisTreeUser.cxx)
 target_compile_definitions(AnalysisTreeUser PUBLIC
         $<$<BOOL:${Boost_FOUND}>:ANALYSISTREE_BOOST_FOUND>)
@@ -83,7 +85,7 @@ ROOT_GENERATE_DICTIONARY(G__AnalysisTreeUser ${HEADERS}
 target_link_libraries(AnalysisTreeUser
         PUBLIC
         ${ROOT_LIBRARIES}
-        AnalysisTreeBase AnalysisTreeInfra
+        ${AnalysisTreeBase} ${AnalysisTreeInfra}
         $<$<BOOL:${Boost_FOUND}>:${Boost_LIBRARIES}>
         )
 
@@ -97,7 +99,7 @@ include_directories(${ROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIRS} ${AnalysisTree_INCL
 # target_link_libraries(run_read_task AnalysisTreeBase AnalysisTreeInfra AnalysisTreeUser ${ROOT_LIBRARIES} EG)
 
 add_executable(run_write_task run_write_task.cpp)
-target_link_libraries(run_write_task AnalysisTreeBase AnalysisTreeInfra AnalysisTreeUser ${ROOT_LIBRARIES} EG)
+target_link_libraries(run_write_task ${AnalysisTreeBase} ${AnalysisTreeInfra} AnalysisTreeUser ${ROOT_LIBRARIES} EG)
 
 
 

+ 3 - 1
preprocessing/UserTaskWrite.cpp

@@ -10,6 +10,7 @@ void UserTaskWrite::Init() {
 
   AddInputBranch("TpcTracks");
   tracks_ = chain->GetBranch("TpcTracks");
+  tracks_.Freeze();
 
   auto br_conf = chain->GetConfiguration()->GetBranchConfig("TpcTracks");
   auto new_conf = br_conf.Clone("TpcTracksExt", DetType::kTrack);
@@ -38,6 +39,7 @@ void UserTaskWrite::Exec() {
   auto itpc_pz = tracks_.GetField("pz");
   auto itpc_eta = tracks_.GetField("eta");
 
+  new_tracks_.ClearChannels();
   for(size_t i=0; i<tracks_.size(); ++i){
     auto track = tracks_[i];
     auto new_track = new_tracks_.NewChannel();
@@ -52,4 +54,4 @@ void UserTaskWrite::Exec() {
 UserTaskWrite::~UserTaskWrite() {
   delete new_particles_ptr_;
   delete new_tracks_ptr_;
-}
+}

+ 7 - 7
preprocessing/run_write_task.cpp

@@ -7,26 +7,26 @@ Authors: Viktor Klochkov, Ilya Selyuzhenkov */
 
 using namespace AnalysisTree;
 
-void run_write_task(const std::string& filelist, const std::string& treename);
+void run_write_task(const std::string& filelist, const std::string& treename, const std::string& ofile, const std::string& otree);
 
 int main(int argc, char* argv[]) {
 
-  if (argc < 3) {
+  if (argc < 5) {
     std::cout << "Error! Please use " << std::endl;
-    std::cout << " ./example filelist treename" << std::endl;
+    std::cout << " ./example filelist treename output_file output_treename" << std::endl;
     exit(EXIT_FAILURE);
   }
 
   const std::string filelist = argv[1];
   const std::string treename = argv[2];
-//   const std::string ofile    = argv[3];
-//   const std::string otree    = argv[4];
-  run_read_task(filelist, treename);
+  const std::string ofile    = argv[3];
+  const std::string otree    = argv[4];
+  run_write_task(filelist, treename, ofile, otree);
 
   return 0;
 }
 
-void run_read_task(const std::string& filelist, const std::string& treename){
+void run_write_task(const std::string& filelist, const std::string& treename, const std::string& ofile, const std::string& otree){
 
   auto* man = TaskManager::GetInstance();
   auto* task = new UserTaskWrite();