Tags:
create new tag
view all tags

LHAASO Software(LhSoft)

Releases available

release L19-Pre1_v1r1

  • setup the release using: source /afs/ihep.ac.cn/soft/LHAASO/LodeStar-SLC6/Pre-Release/L19-Pre1_v1r1/setup.sh

to do in future release

  1. remove the log in every compile:
    • /afs/ihep.ac.cn/soft/LHAASO/LodeStar-SLC6/Pre-Release/L19-Pre1_v1r1/ExternalLibs/Python/2.7.14/include/python2.7/pyconfig.h:1193:0: 警告:“_POSIX_C_SOURCE”重定义
    • #define _POSIX_C_SOURCE 200112L
  2. make clean should remove all the compiled objects and all source file produced from xml

Software unit: Package

  • Package是LHAASO软件的基本单元,实现一个独立的功能
  • LhPackage 中查看如何开始编写一个pacakge
  • 使用python语言将package连接起来,执行一个数据处理/分析的工作。
  • LhSoft 包含的所有pacakge可以在 LhSoftPerson 中查看

How to make a analysis runnable by yourself

如下图,为一个可执行分析程序的框架简图,包含的要素为:task, algorithms,input/output service, tools, serivice。这些要素都在一个 python文件中描述,例如:http://svn.lhaaso.ihep.ac.cn/People/zhucg/tags/myProject/v3.0/run/myjob.py

  • task是顶层要素,其他要素都从task派生
import Sniper
#at least a task should be created
Algtask = Sniper.Task("Algtask")
Algtask.setLogLevel(0) #ouput debug info level

  • task至少产生一个input service,
import RawIO
iSvc=Algtask.createSvc("RawInputSvc/InputSvc")
iSvc.property("InputStream").set({"/Event/RawEvent":"/eos/lhaaso/decode/km2a/2020/0220/ES.43468.KM2A_EVENT.PHYSIC_HALF_EDMD_OVERLAP.20200220233144.100.dat.root"})
iSvc.property("RawType").set(1)

  • task至少产生一个algorithm
import DataCalibration
cali_alg = Algtask.createAlg("DataCalibration/mycali")
cali_alg.property("LogLevel").set(4);
import EventReconstruction
rec_alg = Algtask.createAlg("EventReconstruction/myrec");

  • task产生Service给所有的algorithm调用
import DetGeometrySvc
detSvc = Algtask.createSvc("DetGeometrySvc/DetGeo");
detSvc.property("EDPosFileName").set("../CaliData/ED_pos_half.txt")
detSvc.property("MDPosFileName").set("../CaliData/MD_pos_half.txt")

  • task产生可以产生一个output serivice for data storage, 也可以不设置输出
import RootIOSvc
oSvc = Algtask.createSvc("RootOutputSvc/OutputSvc")
oSvc.property("OutputStream").set({"/Event/RawEvent":"./test.root","/Event/LHCaliEvent":"./test.root"})

  • algorithm产生自己的Tools
  • 运行中,task指挥input service中读取一个事例放入内存,alorithm对该事例进行处理,并产生新的事例。
  • 一个algorithm的输出和下一个algorithm的输入数据模型相同就可以首尾相接,运行时也先后运行。

Comments


Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpeg analysisChain.jpeg r2 r1 manage 90.7 K 2020-05-29 - 08:19 ZhuChengguang  
Edit | Attach | Watch | Print version | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r14 - 2020-05-29 - ZhuChengguang
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback