Tags:
tag this topic
create new tag
view all tags
---+ FIRST Vertex reconstruction software ---++ Getting the code ### a) gather the code. The version under svn is the latest one? <br /><br />I just did an update - so "rec/trunk/MIMO" is the latest version<br />(anyhow, not sure if big things changed at all).<br /><br /><br />### Can you provide us the instructions to run the<br />simulation/digitization/reconstruction you have already developed? ---++ Run the software - I use the development version of FLUKA<br />including a event generator for nuclear interaction <100MeV/n (BME) but<br />simualtions with FLUKA 2008 should also work.<br />- You will also need ROOT.<br /><br /><br />###1) how to generate gsi001_Out.root <br /><br /><br />File package, compilation, and running (MC directory: sim/trunk/)<br />- To connect FLUKA with ROOT, you need to move the file lfluka_root<br />into the FLUKA flutil directory.<br />- For compilation do the following steps:<br /> - source lib_setup.csh<br /> - ./flulink (compilation of C and FORTAN files)<br />- For running do:<br /> - $FLUPRO/flutil/rfluka -e fluka_gsi.exe -N0 -M1 gsi<br /><br />- if you get some errors during compilation with "MEDIUM" something.<br />This is due to changes in usrsco.f between different FLUKA versions. I<br />overcame this problem by commenting all the lines in usrsco.f containing<br />"MEDIUM".<br /><br />Description of simulation structure and comments<br />- In the user routines (*.f and *.inc) we score the FLUKA quantities of<br />interest, hand them over to C/C++ (Fluke2Root.cpp) and store them into a<br />root-file (Evento.*).<br />- The scored quantities, their variable names and an explanation of<br />their content can be found in mgdraw.inc. <br />- After a run you find all the quantities of interest in the root-file.<br />- If you need some help in configuring the simulation for your needs<br />tell me. <br /> ---++ Reconstruction implemented <br />An example of how to process the root file for the MIMOSA is the<br />Analysis program I wrote (rec/trunk/MIMO). It can be very easily changed<br />and adapted. For the moment it is set to generate graphs of the cluster<br />sizes, etc from the MIMOSA TB measuements in CT. <br />It basically shows you how to open the root file, go through it event by<br />event, and retrieve information you want. This program shows also how to<br />use the clustering algorithm (TheCluster->GetCluster(&eve);) and the<br />track finding algorithm (ThePattern->GetPattern(&clu);) of the MIMOSA.<br /><br />The program uses some files from the /sim/trunk/ directory - so make<br />sure that it finds them or just copy them in the rec/trunk/MIMO dir.<br /><br />Before compiling and running you'll need to do some changes: <br />1 - In Analysis.cpp you should point to the root file you want to read<br />(TheData->Init). <br />2 - and you should comment "TheStore->PlotMIMOCluster();" since it needs<br />some additional experimental data files. <br />3 - I hope that's all. <br /><br />Compile and run with "make" + "./Analysis 1" - you should see quite<br />some output and in the end some plots are generated in GFX/.<br /><br /><br />### b) isolate the various workflow steps and build a 'modular' code out<br />of that. We need a class that reads the input and digitize it, a class<br />that performs the reconstruction and a class for the analysis. <br /><br />I tried to do the code modular. For the moment the structure is the<br />following:<br />- The file "Analysis.cpp" reads the input from the FLUKA ROOT file with<br />the help of "Evento.*" (or from other sources if changed.)<br />- the "digitization" (i.e. for each MIMOSA pixel looking if over/below<br />threshold) for all implemented detectors is already done during the<br />FLUKA run (in the files: sim/trunk/Sengale.* and sim/trunk/Evento.*).<br />For instance: the method MI_GetActive(Int_t Number) looks if the energy<br />deposition in a MIMOSA pixel is over threshold<br />- the class "Cluster" does the clustering of activated pixel of an<br />event.<br />- the class "PatternRec" does the track finding in the four MIMOSA<br />planes. It also already does a simple track fitting by chisquared (since<br />I need it for the ranking of the possible hit combinations for the<br />objective function to give me the best tracks)<br />- in future there should be a class which does the track fitting with<br />something like kalman filter and probably involving several detectors -<br />not only MIMOSA<br /><br />The reconstruction code is commented - I hope this helps for your<br />understanding. <br /><br />Since this is the first time ever I did something with reconstruction<br />and you are for sure all more experts than me - I'm sure there are some<br />thing to improve in terms of: code design, algorithms & performance. So<br />I'm happy about every comment and correction I get! Also: in the<br />routines I put some TODO's for further development of the algorithms.<br /><br /><br />I hope this description helps you to get started, but of course, don't<br />hesitate to ask if in doubt. -- Main.AlessioSarti - 2011-02-07
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r1 - 2011-02-07
-
AlessioSarti
Home
Site map
Main web
Sandbox web
TWiki web
Main Web
Users
Groups
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
E
dit
A
ttach
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback