Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:11:53

0001 #!/usr/bin/env ruby
0002 # -----------------------------------------------------------------------------
0003 # 'copy-to-analysis.rb'
0004 # Derek Anderson
0005 # 12.21.2023
0006 #
0007 # Script to automate copying files over to
0008 # a fork of the sPHENIX analysis repo.
0009 # -----------------------------------------------------------------------------
0010 
0011 # modules to use
0012 require 'fileutils'
0013 
0014 # top directory to copy from/to
0015 copy_from = "/sphenix/user/danderson/tracking/TrackMatchingComparison"
0016 copy_to   = "/sphenix/user/danderson/sphenix/analysis/AndersonAnalysisModules/TrackStudies/STrackMatchingComparator"
0017 
0018 # what files to copy
0019 to_copy = [
0020   "README.md",
0021   "RunMatcherComparator.C",
0022   "MatcherComparatorOptions.h",
0023   "RunMatcherComparatorOnCondor.job",
0024   "RunMatcherComparatorOnCondor.sh",
0025   "RunMatcherComparator.rb",
0026   "src/STrackMatcherComparator.cc",
0027   "src/STrackMatcherComparator.h",
0028   "src/STrackMatcherComparatorConfig.h",
0029   "src/STrackMatcherComparatorHistDef.h",
0030   "src/STrackMatcherComparatorHistContent.h",
0031   "src/sphx-build",
0032   "src/autogen.sh",
0033   "src/Makefile.am",
0034   "src/configure.ac",
0035   "macros/MakeNewMatcherPlots.cxx",
0036   "macros/MakeNewMatcherTuplePlots.cxx",
0037   "macros/MakeOldEvaluatorPlots.cxx",
0038   "macros/CompareOldVsNewPlots.cxx",
0039   "macros/Fun4All_RunNewTruthMatcher.C",
0040   "macros/G4Setup_sPHENIX.C",
0041   "macros/QuickTreePlotter.C",
0042   "macros/QuickTuplePlotter.C",
0043   "macros/MergeFiles.C",
0044   "scripts/copy-to-analysis.rb",
0045   "scripts/RunNewTruthMatcherOnCondor.sh",
0046   "scripts/RunNewTruthMatcherOnCondor.job",
0047   "scripts/HAddFilesFromPattern.rb",
0048   "scripts/MergeCondorFiles.rb",
0049   "scripts/MergeFiles.rb"
0050 ]
0051 
0052 # do copying
0053 to_copy.each do |file|
0054 
0055   # make directory in target if needed
0056   if file.include? "/"
0057 
0058     # grab relative path to file
0059     relative_path = file.clone
0060     relative_path.gsub!(copy_from, "")
0061 
0062     # clean up and isolate path
0063     relative_path.gsub!("//",  "/")
0064     relative_path.gsub!("/./", "/")
0065     relative_path.slice!(relative_path.rindex("/")..-1)
0066 
0067     # make directory
0068     to_make = copy_to + "/" + relative_path
0069     FileUtils.mkdir_p(to_make, :verbose => true) unless File.exists?(to_make)
0070   end
0071 
0072   # make source and target paths
0073   source = copy_from + "/" + file
0074   target = copy_to + "/" + file
0075 
0076   # remove any unwanted patterns
0077   source.gsub!("//",  "/")
0078   target.gsub!("//",  "/")
0079   source.gsub!("/./", "/")
0080   target.gsub!("/./", "/")
0081 
0082   # copy file
0083   FileUtils.cp_r(source, target, :verbose => true)
0084 end
0085 
0086 # end -------------------------------------------------------------------------