GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » R3BRoot » Simulation Issues » NeuLAND tracking algorithm (How to use the NeuLAND tracking algorithm)
NeuLAND tracking algorithm [message #19126] Thu, 10 March 2016 10:14 Go to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Dear all,

For my simulations on the VETO, I need to know which primary particle fired which bar of NeuLAND (in the case of multiple primaries, possibly with different PDG). I would like to use the R3BRoot tracking algorithm for NeuLAND to answer this question. I tried to run the tracker by
run->AddTask(new R3BNeutronTracker());
run->AddTask(new R3BNeutronTracker2D());
This indeed produces an output file with some histograms and a tree containing tracks. However, the tree is always empty and for some variations of the R3BRoot setup the tracker crashes.
Can anyone explain what I'm doing wrong?

Christiaan.
Re: NeuLAND tracking algorithm [message #19127 is a reply to message #19126] Thu, 10 March 2016 10:35 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
Dear Christiaan,

a how-to use NeuLAND tracker is described here https://www.r3broot.gsi.de/multi-neutron-simulation
You can find there names of macros, and then look-up proper usage of the task.

The algorithm produces "LandNeutHits" output, which are coordinate and time of reconstructed first interactions of primary neutrons.

Best regards,
Dima
Re: NeuLAND tracking algorithm [message #19134 is a reply to message #19126] Wed, 16 March 2016 16:45 Go to previous messageGo to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Dear Mr. Kresan,

Thank you for the explanation. It took me some time to get through all the macros (hence the late reply).
I can understand most of it, but I have a few questions about the calibration of the cuts (calibr.C):

1) I see that there are 2 versions of the calibration macro: calibr.C and calibr_mini.C
Is one of them better then the other (regarding the physics), or is the difference just code optimization?
In Jan Mayers talk from last NUSTASR week I also see a difference in efficiency between calibr.C and calibr_mini.C
What is the meaning of this?

2) What is the physics behind 'kappa'?

3) calibr.C has a few flaws on my computer. It returns kappa=0 on my computer and no cuts (with the second function).
Could this be caused by the fact that the histogram boundaries are too small for 4n? Or did I miss something else?

4) The calibration text file that comes out of the macro is just a small list of numbers. What is the meaning of those numbers?

5) I used the NeuLandDigitizer from Jan Mayer, not the LandDigitizer (which was suggested in precalibr.C).
Is this the right way or should I use the LandDigitizer?

6) For the R3BNeutronTracker, What is the Purpose of the UseBeam-memberfunction? I see that the mean energy and the
beta from relativity should be added here, but I would like to understand how exactly these numbers are used by the tracker.

Yours sincerely,
Christiaan Douma.
Re: NeuLAND tracking algorithm [message #19135 is a reply to message #19134] Thu, 17 March 2016 10:37 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
Hi Christiaan,

1) Maybe Jan Mayer can comment on this. I wrote calibr.C macro, where efficiency is calculated depending on specified impurity level for each event type. I do not know how it is done in calibr_mini.C.

2) kappa is just an artificial parameter, which sets the inclination of linear 2D cuts on number of clusters versus deposited energy. It is set per hand, in order to best described simulated data. Physics behind - anti-correlation between mentioned 2 variables.

3) second function in calibr.C (with automatic calculation of kappa) has to be revised and fixed. It does not work for me also. Use the function with manual setting of kappa.

4) The meaning of numbers is: parameter 1 - kappa value used. The rest of parameters: energy cuts on each type of event.

5) I do not know. We have to ask Jan Mayer. But I do not expect divergences in output results.

6) The value of beam velocity is used in the tracker in order to select best candidates for hits from primary neutron(s) interaction. The point is that incident neutrons have velocity very close to the beam.

Hope I could help a bit.

Best regards,
Dima
Re: NeuLAND tracking algorithm [message #19136 is a reply to message #19135] Thu, 17 March 2016 10:54 Go to previous messageGo to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Dear Mr. Kresan,

I have tried to use calibr.C for maula kappa of 0.07 and then this is the resulting picture. Given the small distances
between some of the cuts I do not trust the output. What am I doing wrong? In order to ensure that the blob for 4n
falls in the energy range, I changed the CreateHistograms-function to:
void R3BNeutronCalibr2D::CreateHistograms()
{
fh_etot = new TH1F("h_etot", "Total light", 2*fBeamEnergy, 0., ((Int_t) 2*fBeamEnergy));
fh_ncl_etot = new TH2F("h_ncl_etot", "Number of clusters vs. total light", 2*fBeamEnergy, 0., ((Int_t) 2*fBeamEnergy), 200, -0.5, 199.5);
}
And I set fBeamEnergy=1000

Yours Sincerely,
Christiaan Douma.

PS: Does Jan Mayer receive copies of this exchange?
Re: NeuLAND tracking algorithm [message #19137 is a reply to message #19136] Thu, 17 March 2016 11:46 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
If you change the binning of histogram in the code, you also have to do this in the calibr.C macro. It is not taken into account automatically. As I see, you also changed the range. This should be adopted as well.

Cheers,
Dima
Re: NeuLAND tracking algorithm [message #19138 is a reply to message #19137] Thu, 17 March 2016 13:52 Go to previous messageGo to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
I adapt adapt calibr.C as well for that. I changed the 1500. into 2000. on lines 45 and 57.

Christiaan.
Re: NeuLAND tracking algorithm [message #19139 is a reply to message #19138] Thu, 17 March 2016 14:04 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
You also need to change number of bins 150 --> 200 on line 350.
Re: NeuLAND tracking algorithm [message #19140 is a reply to message #19139] Thu, 17 March 2016 16:49 Go to previous messageGo to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Dear Mr. Kresan,

Thank you. I will try again with this modification.

In the mean time I have been working to obtain some cuts from Jan Mayer his calibr_mini.C macro and that produced some sensible cuts (although I am not very happy with it, because
the 4th blob still runs of the scale). With these cuts I was able to run the NeutronTracker (according to the principles of r3blanreco.C). At least I do not get a crash.

But in the output tree I only see 4 NeutHit-leafs (and some starndard leafs without physics): the X, Y, Z and T of the startpoint of the track. Then how do I get the total reconstructed energy in the track? Or the initial momenta of the track? And is there a way to obtain which NeuLAND scintillator bar belongs to which track?

Christiaan.

Re: NeuLAND tracking algorithm [message #19142 is a reply to message #19140] Fri, 18 March 2016 08:30 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
NeuLAND is the time-of-flight spectrometer, position and time allows to calculate the energy.

You can make use of member function GetP() of the R3BNeutHit class, which returns total momentum in MeV. Then knowing momentum and mass you get the energy.

Bar index can be obtained from global X,Y,Z coordinates of the neutron hit, having at hand position and layout of the detector. There is currently no function implemented. Feel free to contribute.

Best regards,
Dima
Re: NeuLAND tracking algorithm [message #19143 is a reply to message #19142] Fri, 18 March 2016 09:57 Go to previous messageGo to next message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Thank you. I understand. If I know the target position I can use the position of the hit to calculate the travel distance. Combining this with the TOF and the fact that the particle is a neutron gives me the energy.

My question about the bars is however different. The digitizer contains the fired bars of NeuLAND. Now in the case of multiple tracks within one event, I want to know which of these bars contributed to which track. Is there a way to obtain this? If not, then at which lines of code should I look to implement an additional leaf containing this information?

One other question: In the case of a 4n experiment and some background particles, we might end up with more then 4 distinct tracks. Then some of these tracks have to be VETOed so that we are left with with 4 tracks for the neutrons. So is the tracker capable of reconstructing more then 4 distinct tracks? In this case, do I then just have to submit more energy cuts in the calibration .txt-file or do I have to make more advanced changes?

Christiaan.
Re: NeuLAND tracking algorithm [message #19145 is a reply to message #19143] Fri, 18 March 2016 11:35 Go to previous messageGo to next message
Dmytro Kresan is currently offline  Dmytro Kresan
Messages: 166
Registered: June 2004
first-grade participant
From: *gsi.de
There is nothing like neutron track in the current model. Only one hit - primary interaction - per incident neutron.

Fired bars contribute to the clusters - tracks of charged particles, but not to the neutron tracks.

Currently, the decision on number of incident neutrons is taken on the basis of the 2D cuts on clusters and energy. If you want to plug-in VETO information, I would recommend to create a new task for such combined reconstruction. The answer is: you have to do much more advanced changes.
Re: NeuLAND tracking algorithm [message #19148 is a reply to message #19145] Fri, 18 March 2016 13:37 Go to previous message
C. A. Douma is currently offline  C. A. Douma
Messages: 88
Registered: September 2015
Location: Groningen
continuous participant
From: *kvi-cart.rug.nl
Thank you for the explanation. But I was just thinking that maybe I can first reconstruct each incoming particle as if it were a neutron and then simply throw away the tracks that are close to a VETO hit. That would not require too much work I think. But in order to do that I need the tracker to be able to reconstruct more then 4 distinct tracks.

Christiaan.
Previous Topic: making Target
Next Topic: problem with dev-branch NeuLAND digitizer
Goto Forum:
  


Current Time: Thu Nov 07 23:30:31 CET 2024

Total time taken to generate the page: 0.00727 seconds