Dear Kotoyo.
> Thank you very much for answering my recent question, I finally got consistent result with my simulation and Genie output!
Good. Having read about how you go about simulating atmospheric neutrino events at IceCube, I was about to
offer adding a GENIE mode where *every* flux neutrino thrown towards the geometry is forced to interact.
Would that make things easier for you?
> Today I have another issue about Random Generator.
> Currently GENIE is using TRandom3, but for our project we need to use our own random generator for several reasons (to control seed, consistency between other modules, parallel computing, etc).
I do not think this would work.
For one, GENIE uses PYTHIA which uses its own random number generator.
And, occasionally, we let ROOT draw random numbers from histograms (via TH1::GetRandom()) using its gRandom instance.
To make the GENIE MC jobs repeatable, the PYTHIA random number seed value and the gRandom seed value
are always set to be the same as the GENIE seed value.
Letting you replace GENIE's random number generator with your own generator is not enough
as you can not do the same with PYTHIA(6) and ROOT.
> I also have another minor request : inside destructor in some classes, there are cout calls and we can't make them silence.
> Would it be under control of logging system, or make silence mode as default?
These messages are in the destructors of some singletons.
They can not go under the control of the logging system (a singleton itself) as, I think, there is
no guarantee regarding the order in which singletons are deleted and the logging system may no
longer be there to print out these messages.
They are not important messages so I will just comment them all out.
cheers
Costas
> I don't know where should I send these requests, if this ML is not appropriate please let me know.
>
> Thank you,
> Kotoyo
>
>
> On Mar 4, 2013, at 11:47 AM, Kotoyo Hoshina <[log in to unmask]> wrote:
>
>>
>> Dear all,
>>
>> Thank you very much for answering my recent question, I finally got consistent result with my simulation and Genie output!
>> Today I have another issue about Random Generator.
>>
>> Currently GENIE is using TRandom3, but for our project we need to use our own random generator for several reasons (to control seed, consistency between other modules, parallel computing, etc).
>>
>> Is it possible to change RandomGen class to just a interface (wrapper) class, so that users can write their own random generator class?
>> Or even giving an option to RandomGen, for example, accepting user class inherited from TRandom3 would works for short term.
>>
>> Here is the example :
>>
>> class MyRandGen : public TRandom3 {…}
>>
>> class RandomGen {
>>
>> public
>> void SetRandomGen(TRandom3 * random_ptr) { fRandom3 = random_ptr; }
>>
>> }
>>
>> void main() {
>>
>> MyRandGen * my_rand = new MyRandGen();
>> RandomGen *rnd = RandomGen::Instance();
>> rnd->SetRandomGen(my_rand);
>>
>> double random = rnd->RndGen()->Rndm();
>> ….
>>
>> }
>>
>> If developers accept the idea, it would be nice if you could implement it to trunk in short term.
>>
>> Thank you very much!
>>
>> Kotoyo
>>
>> ---------------------------------------------------------
>> Kotoyo Hoshina
>> IceCube Assistant Scientist
>> Office : IceCube, 222 West Washington, Suite500, Madison, WI, 53703-2775 USA
>> Tel : +1-(608) 890-0532
>> Mail : [log in to unmask]
>>
>>
>>
>>
--
Scanned by iCritical.
|