Fieldmaps for the half current solenoid [message #14938] |
Tue, 09 July 2013 12:54 |
Prometeusz Jasinski
Messages: 34 Registered: January 2012
|
continuous participant |
From: *kph.uni-mainz.de
|
|
Again, I spam both, the ticket system and forum.
https://subversion.gsi.de/trac/fairroot/ticket/103
As one should know, solenoid current will be reduced by a factor of 2 for beam energies below injection momentum what is about 3 GeV. I got tosca fem field maps from Jost Luening and translated those with my own program into panda root compatible field maps:
http://www.staff.uni-mainz.de/jasinsk/temp/solenoid_hc.tar.gz
The problem is pandaroot foresees only one solenoid field for all momenta. To my mind it should be done, like for Dipole maps. In addition we would need maps with half current for 1.5 GeV and 3 GeV and then maps for, let's say 3.1 GeV with full current. Otherwise pandaroot would try to interpolate between the lowest two maps for intermediate momentum settings for the solenoid as well, isn't it so?
I hope this isn't a big issue.
****
For the sake of completeness:
Here are the fieldmaps by Jost Luehning. Thanks for the work!
http://web-docs.gsi.de/~luehning/Maps_1301.rar
****
One possible workaround:
I have created two folders in my <pandaroot>/input directory:
solenoid_hc
solenoid_fc
I have put to both half and full current fieldmaps and linked
to the input folder what I needed
ln -sf solenoid_hc/* ./
But this is for sure only a workaround
Cheers Promme
PS: I tested the fieldmaps only for 100 events that should reach the luminosity monitor. So please inform me if you find something strange.
[Updated on: Tue, 09 July 2013 12:56] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Fieldmaps for the half current solenoid [message #15973 is a reply to message #14938] |
Sat, 15 March 2014 00:19 |
donghee
Messages: 385 Registered: January 2009 Location: Germnay
|
first-grade participant |
From: *dip0.t-ipconnect.de
|
|
Hi Prome and Stefano,
The final issue for 1/2 half field map still remain due to combining two stuff between field map and accessor in my point of view.
I assume that total size of cubic(or vector) and structure must be same for half field map.
Then additional field map will be placed into the pandaroot/input/ accodring to transition region with 2 different beam momentum and one common solenoid
TransMap_Low.0150.root
TransMap_Low.0300.root
SolenoidMap_Low1.root
SolenoidMap_Low2.root
SolenoidMap_Low3.root
SolenoidMap_Low4.root
One can access reduced map via /field/PndMultiField by "Half" in user side.
I expect simply additional option "Half" with above naming scheme
Quote:
else if (Map=="Half") {
PndTransMap *map_t= new PndTransMap("TransMap_Low", "R", fBeamMom);
PndDipoleMap *map_d1= new PndDipoleMap("DipoleMap1", "R", fBeamMom);
PndDipoleMap *map_d2= new PndDipoleMap("DipoleMap2", "R", fBeamMom);
PndSolenoidMap *map_s1= new PndSolenoidMap("SolenoidMap_Low1", "R");
PndSolenoidMap *map_s2= new PndSolenoidMap("SolenoidMap_Low2", "R");
PndSolenoidMap *map_s3= new PndSolenoidMap("SolenoidMap_Low3", "R");
PndSolenoidMap *map_s4= new PndSolenoidMap("SolenoidMap_Low4", "R");
AddField(map_t);
AddField(map_d1);
AddField(map_d2);
AddField(map_s1);
AddField(map_s2);
AddField(map_s3);
AddField(map_s4);
}
....
Basically between 1.5 GeV and 3.0 GeV only one transition map should be enough.
However we have already two field map for transition region by producing from Prome.
Then field/PndTransMap.cxx have to be replaced by a piece of hanling for this two transition map.
Quote:
fType = 4;
TString Suffix="";
FairRunSim *fRun= FairRunSim::Instance();
if(fRun) fBeamMom= fRun->GetBeamMom();
//if(fBeamMom< 3.0)Suffix=".0150" ;//inactivate
if(fBeamMom>= 1.5 && fBeamMom <= 2.25)Suffix=".0150" ; //baem momentum close to the 1.5 GeV
if(fBeamMom>= 2.25 && fBeamMom <= 3.0)Suffix=".0300" ; //beam momentum clsoe to the 3.0 GeV
//actually between 1.5 and 3.0 GeV only one transition map.
else if (fBeamMom< 6.0 && fBeamMom >= 3.0)Suffix=".0406";
else if (fBeamMom< 10.0 && fBeamMom >= 6.0 )Suffix=".0890" ;
else if (fBeamMom< 13.0 && fBeamMom >= 10.0)Suffix=".1191";
else if (fBeamMom> 13.0) Suffix=".1500";
TString NewName=mapName;
NewName=mapName+Suffix;
SetName(NewName.Data());
TString dir = getenv("VMCWORKDIR");
fFileName = dir + "/input/" + NewName;
if ( fileType[0] == 'R' ) fFileName += ".root";
else fFileName += ".dat";
I think then we have no problem at all for this issue.
Do I miss somewhere else?
Best wishes,
Donghee
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Fieldmaps for the half current solenoid [message #15987 is a reply to message #15986] |
Sun, 16 March 2014 14:26 |
Stefan Pflueger
Messages: 99 Registered: February 2012
|
continuous participant |
From: *kph.uni-mainz.de
|
|
Hi Donghee,
Looks good, I just have one comment. I was thinking to automize this just like the dipole field maps are picked for the different momenta. So something like this:
if (Map=="FULL") {
PndDipoleMap *map_d1= new PndDipoleMap("DipoleMap1", "R", fBeamMom);
PndDipoleMap *map_d2= new PndDipoleMap("DipoleMap2", "R", fBeamMom);
PndTransMap *map_t;
PndSolenoidMap *map_s1;
PndSolenoidMap *map_s2;
PndSolenoidMap *map_s3;
PndSolenoidMap *map_s4;
if(fBeamMom > 3.0) {
map_t= new PndTransMap("TransMap", "R", fBeamMom);
map_s1= new PndSolenoidMap("SolenoidMap1", "R");
map_s2= new PndSolenoidMap("SolenoidMap2", "R");
map_s3= new PndSolenoidMap("SolenoidMap3", "R");
map_s4= new PndSolenoidMap("SolenoidMap4", "R");
}
else {
map_t= new PndTransMap("TransMap_Half", "R", fBeamMom);
map_s1= new PndSolenoidMap("SolenoidMap_Half1", "R");
map_s2= new PndSolenoidMap("SolenoidMap_Half2", "R");
map_s3= new PndSolenoidMap("SolenoidMap_Half3", "R");
map_s4= new PndSolenoidMap("SolenoidMap_Half4", "R");
}
AddField(map_t);
AddField(map_d1);
AddField(map_d2);
AddField(map_s1);
AddField(map_s2);
AddField(map_s3);
AddField(map_s4);
}
In that way the correct fieldmaps are picked like it will be the case at PANDA without the user having to make a choice. Also no changes in macros are required for the correct setting. In case we do not want to modify the "FULL" case, I would at least make this the "AUTO" case.
Best regards,
Stefan
|
|
|
|
|
|
|