Home » PANDA » PandaRoot » Event Generators » Event filter II
Re: Event filter II [message #17486 is a reply to message #17484] |
Mon, 10 November 2014 10:58 |
MartinJGaluska
Messages: 203 Registered: March 2010 Location: Germany
|
first-grade participant |
From: *pool.mediaWays.net
|
|
Good morning Donghee,
thanks for reporting the crash. It occured in the code that finds the charge for a certain pdg code. I will have to look into the problem as this code was definitely working when I last tested the event filter code.
The first issue you reported is a misconception of what the following code does.
Quote:
FairEvtFilterOnSingleParticleCounts* fil= new FairEvtFilterOnSingleParticleCounts("fil");
fil->AndMinMaxPdgCodes(1,1,211,-211);
primGen->AndFilter(fil);
Please have a look at the tutorial (section "Pdg Codes") or the comments inside the source code.
//////////////////
71 // User interfaces -- Pdg Code Min and Max
72 //////////////////
73 // Use this for grouping up to 8 pdgCodes into 1 groupId
74 // all particles belonging to the groupId are regarded as being indistinguishable
75 // min defines how many particles you want in your events AT LEAST
76 // max defines how many particles you want in your events AT MOST
77 // the min and max numbers are used for all particles with one of the above pdgCodes
78 // returns kTRUE if the filter was added, otherwise returns kFALSE
79 Bool_t AndMinMaxPdgCodes( Int_t min, Int_t max, Int_t pdgCode1, Int_t pdgCode2=kInvalidPdgCode, Int_t pdgCode3=kInvalidPdgCode, Int_t pdgCode4=kInvalidPdgCode, Int_t pdgCode5=kInvalidPdgCode, Int_t pdgCode6=kInvalidPdgCode, Int_t pdgCode7=kInvalidPdgCode, Int_t pdgCode8=kInvalidPdgCode );
80
In short your code is asking that exactly one (pi- OR pi+) is present in the events. Nothing else.
The second suggestion is a bit more correct as you also ask for exactly 2 particles to be present in the events, but it is still not what you want. Here is the code that should do what you ask for:
FairEvtFilterOnSingleParticleCounts* fil= new FairEvtFilterOnSingleParticleCounts("fil");
fil->AndMinMaxPdgCodes(1,1,211); // exactly one pi+ in primary particles
fil->AndMinMaxPdgCodes(1,1,-211); // exactly one pi- in primary particles
fil->AndMinMaxAllParticles(2,2); // exactly 2 primary particles in event
primGen->AndFilter(fil);
I assume that will also lead to a crash as long as I have not fixed the issue in FairEvtFilter::GetCharge.
Kind regards,
Martin
[Updated on: Mon, 10 November 2014 11:01] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Fri Nov 22 03:09:46 CET 2024
Total time taken to generate the page: 0.00581 seconds
|