ThomasF
1
Hello everybody,
I try to build mediums with a loop.
For the moment, i was using this syntax: example:
But i have to define a list of mediums.
I tried the following syntax but it does not work
TGeoMedium *med[10];
for(int i=0; i<10;i++){
*med[i] = new TGeoMedium("med"+i, 1, vacuum);
}
Could you please explain me what is the syntax in a loop ?
Thank you in advance.
Instead of:
“med”+i
try:
(TString::Format(“med_%i”, i)).Data()
BTW. Do try also:
root [0] "med"
root [1] “med”+0
root [2] “med”+1
root [3] “med”+2
root [4] “med”+3
but do NOT try “med”+4, “med”+5, …
ThomasF
3
I tried the following syntax:
TGeoMedium *med[10];
for(int i=0; i<10;i++){
*med[i] = new TGeoMedium((TString::Format("med_%i", i)).Data(), 1, vacuum);
}
I have the same error: *** Break *** segmentation violation
{
TGeoMaterial *vacuum = new TGeoMaterial("vacuum", 0.0, 0.0, 0.0);
TGeoMedium *med[10];
for(int i=0; i<10;i++)
med[i] = new TGeoMedium((TString::Format("med_%i", i)).Data(), (i + 1), vacuum);
gGeoManager->GetListOfMaterials()->Print();
gGeoManager->GetListOfMedia()->Print();
}