Re: Random Seeds in G4_VMC

From: Ivana Hrivnacova <Ivana.Hrivnacova_at_cern.ch>
Date: Mon, 5 Oct 2009 15:15:40 +0200

I think much simpler, and more transparent to the user would be to change the current TVirtualMC function:

    virtual void SetRandom(TRandom* random); to

    virtual void SetRandomSeed(Long_t seed);

Ivana

Mohammad Al-Turany wrote:
> Hallo Ivana,
>
> Ok, I agree it is more complicated than what I expected! But all what I want
> is to be able to set the seed myself in a consistence way, without really
> caring which random generator is running behind.
>
> So what about implementing something in the init of VMC which simply put the
> gRandom::GetSeed() in an ASCII (current.rnd) file that is read by default in
> the g4config.in with
>
> /random/resetEngineFrom current.rnd
>
> And for the advanced users who would like to restore or re-process a run
> they have to change the config.in. But at least for the normal use one has
> the control over the random seed whatever generator is setting behind,
> because originally we had the problem with G4_VMC that it always uses the
> same seed and that is way we need to control it specially on the grid and
> batch farms.
>
>
> Regards
>
> Mohammad
>
>
> On 10/5/09 11:33 AM, "Ivana Hrivnacova" <Ivana.Hrivnacova_at_cern.ch> wrote:
>

>> Hi Mohammad,
>>
>> Geant4 does not use the random number generator from Root,
>> but from CLHEP, that's why I considered it as misleading
>> to implement setting its seed via gRandom.
>>
>> The reason is that this way would not allow you
>> to re-process a run or event from a previous simulation
>> by storing gRandom status and restoring it in a new
>> simulation, as gRandom status has nothing to do with
>> the random generator used by Geant4.
>>
>> The command
>> /random/resetEngineFrom    current.rnd
>> should be used together with a file stored via Geant4
>> commands
>> /random/saveThisRun
>> /random/saveThisEvent
>> If you try the command and look at the file, you
>> will see that there is more data than just one long number.
>>
>> You can  use gRandom->GetSeed() (=mySeed) number for setting
>> initial seed:
>> /random/setSeeds mySeed mySeed
>> (G4 setSeeds requires at least two long values)
>> but a question is what it will be good for.
>>
>> A possible solution to handle the different random generators
>> in a common way via VMC could be to interface the appropriate
>> functions for storing/restoring the generator status.
>>
>> Best regards,
>>
>> Ivana
>>
>>
>> Mohammad Al-Turany wrote:
>>> Hallo,
>>>
>>> As you all know to set the Random seed in G3_VMC it is enough to use
>>>  gRandom->SetSeed(seed), in G4_VMC this does not work, and what I do to
>>> set the seed is to go via the g4config.in macro  and put there:
>>>
>>>     /random/resetEngineFrom    seed.rnd
>>>
>>> Where seed.rnd is an ASCII file containing my seeds.
>>>
>>> Is it possible to unify this behavior and to pass the seed from gRandom
>>> to the G4_VMC in the initialization? Or do you have any other suggestion?
>>>
>>> Regards
>>>
>>> Mohammad
>>>

>
-- 
==============================================================
e-mail:  Ivana.Hrivnacova_at_cern.ch
address: Institut Physique Nucleaire, 91406 Orsay, France
phone:   (33) 01 69 15 65 94
==============================================================
Received on Mon Oct 05 2009 - 15:15:41 CEST

This archive was generated by hypermail 2.2.0 : Mon Oct 05 2009 - 23:25:02 CEST