GSI Helmholtzzentrum für Schwerionenforschung
[FIXED] Problem with FTS Mapper PndFtsMapCreator
Hi I found some inconsistencies with the geometry information corresponding the the straw tubes in the FS. All FS straw tubes (PndFtsTube Objects ) are stored in a TClonesArray and indexed vis the TubeID. A dump of values shows that for the 2nd layer the tube position is wrong ( notably wrong Z ) : -I- PndFtsClusterFinder:: ReadFtsHits() -I- Digits Data: fHits[0] is branchID 5 name# FTSHit entries# 49 -I- PndFtsClusterFinder ChamberID# 1 LayerID# 1 TubeID# 51 -I- PndFtsClusterFinder Tube position X: 13.635 Y:0 Z:294.895 R_meas: 0.208595 -I- PndFtsClusterFinder wire direction wx# 0 wy# 1 wz# 0 0 -I- PndFtsClusterFinder ChamberID# 1 LayerID# 2 TubeID# 192 -I- PndFtsClusterFinder Tube position X: -95.95 Y:0 Z:423.765 R_meas: 0.330289 -I- PndFtsClusterFinder wire direction wx# 0 wy# 1 wz# 0 The Z position should be instead Z=295.75 ? Any idea ?
Re: Problem with FTS Mapper PndFtsMapCreator
The new mapper has some bug, Isabella is taking a look.
I think it makes sense to post this information here in case other people will run into the same problem with the FTS digitization: Previously, it was discovered that the digitization has problems for tracks which are close to the beam pipe. As a temporary workaround one can use the MCPoint positions. To do that PndFtsHitProducerRealFast.cxx has to be modified like this: 1) add comment to the line 225: // TVector3 position = tube->GetPosition(); 2) uncomment line 224: TVector3 position(point->GetX(), point->GetY(), point->GetZ()); //point info
In a new post (so that it won't be overlooked) my new problem: I get Info in <PndFtsMapCreator::PndFtsMapCreator>: Geometry -1 not supported by map when I try to run my reco task in a macro. I have the following in the Init method of my class: FairRuntimeDb *rtdb= FairRun::Instance()->GetRuntimeDb(); fFtsParameters=(PndGeoFtsPar*)(rtdb->getContainer("PndGeoFtsPar")); // FTS Tube Array PndFtsMapCreator *mapperFts = new PndFtsMapCreator(fFtsParameters); fFtsTubeArray = mapperFts->FillTubeArray(); I have declared the variables as private as follows: PndGeoFtsPar *fFtsParameters; TClonesArray *fFtsTubeArray; In my .h file I put class TClonesArray; class PndGeoFtsPar; and in the .cxx #include "PndGeoFtsPar.h" #include "PndFtsMapCreator.h" Am I doing something wrong? PandaRoot Revision: 23483, external packages apr13, Ubuntu 12.04 64 bit
You should implement the SetParContainer() virtual function of the FaitTasks: void PndMyTask::SetParContainers() { FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb(); fFtsParameters = (PndGeoFtsPar*) rtdb->getContainer("PndGeoFtsPar"); } in order to get the container at the right time in the initialisation.
I have jsut committed an update in the trunk which should fix the mapper, thanks to Isabella. Please update your fts and geometry folder, and try again. Hopefully the problem is fixed now.
Unfortunately after updating both: fts.geo ( geometry directory) PndFtsMapCreator ( fts directory) The issue with the tube mapping mentioned previously still exists. For my part, i solved the problem for the FTS digitizer by taking the tube geometrical information directly from the TGeoManager nodes and i am storing the tube geometry directly in the PndFtsHit structure ( for now ) When i run the FTS digitizer using both the new tube mapping ( with the updated fts.geo ) i am getting now a systematic X coordinate mismatch i.e : In the text dump that follows, one has to compare geometrical information - from the MC points ( Geant point ) - from the mapper ( Tube from mapper ) - from the TGeoManager directly ( Tgeo Tube position ) : -I- TubeId -------------> 5758 -I- Geant Point -------------> X Y Z 69.0942 : 11.3914 : 607.028 -I- Tube From Mapper -------------> X Y Z 75.245 : 0 : 606.995 -I- Tube from TGeo: Rmin Rmax dz 0 : 0.505 : 59 -I- TGeo Translation i= 0 : 69.185 -I- TGeo Translation i= 1 : 0 -I- TGeo Translation i= 2 : 606.995 -I- TGeo Rotation: i= 0 : 1 i= 1 : 0 i= 2 : 0 i= 3 : 0 i= 4 : 0 i= 5 : 1 i= 6 : 0 i= 7 : 1 i= 8 : 0 -I- TGeo: Tube position X: 69.185 Y:0 Z:606.995 R_meas: 0.121848 -I- TubeId -------------> 6170 -I- Geant Point -------------> X Y Z 69.4256 : 11.412 : 607.964 -I- Tube From Mapper -------------> X Y Z 87.87 : 0 : 607.87 -I- Tube from TGeo: Rmin Rmax dz 0 : 0.505 : 59 -I- TGeo Translation i= 0 : 69.69 -I- TGeo Translation i= 1 : 0 -I- TGeo Translation i= 2 : 607.87 -I- TGeo Rotation: i= 0 : 1 i= 1 : 0 i= 2 : 0 i= 3 : 0 i= 4 : 0 i= 5 : 1 i= 6 : 0 i= 7 : 1 i= 8 : 0 -I- TGeo: Tube position X: 69.69 Y:0 Z:607.87 R_meas: 0.277454 -I- TubeId -------------> 6581 -I- Geant Point -------------> X Y Z 70.6534 : 11.4883 : 611.426 -I- Tube From Mapper -------------> X Y Z 101.893 : 0 : 611.49 -I- Tube from TGeo: Rmin Rmax dz 0 : 0.505 : 59 -I- TGeo Translation i= 0 : 71.477 -I- TGeo Translation i= 1 : 0 -I- TGeo Translation i= 2 : 611.49 -I- TGeo Rotation: i= 0 : 0.996195 i= 1 : 0 i= 2 : -0.0871557 i= 3 : 0.0871557 i= 4 : 0 i= 5 : 0.996195 i= 6 : 0 i= 7 : 1 i= 8 : 0 -I- TGeo: Tube position X: 71.477 Y:0 Z:611.49 R_meas: 0.190151 -I- TubeId -------------> 6992 -I- Geant Point -------------> X Y Z 70.986 : 11.5091 : 612.362 -I- Tube From Mapper -------------> X Y Z 114.566 : 0 : 612.365 -I- Tube from TGeo: Rmin Rmax dz 0 : 0.505 : 59 -I- TGeo Translation i= 0 : 71.9839 -I- TGeo Translation i= 1 : 0 -I- TGeo Translation i= 2 : 612.365 -I- TGeo Rotation: i= 0 : 0.996195 i= 1 : 0 i= 2 : -0.0871557 i= 3 : 0.0871557 i= 4 : 0 i= 5 : 0.996195 i= 6 : 0 i= 7 : 1 i= 8 : 0 -I- TGeo: Tube position X: 71.9839 Y:0 Z:612.365 R_meas: 0.0175759
Dear Denis, maybe it would be better to copy here the code you are using, since Isabella (who cannot read the forum) is not able to reproduce your problem. Just send your macros, sim+digi+check. By the way, could it be that you forgot to remove the parameter file after updating the geometry, and that you had an old geometry definition there screwing the mapper?
Hi Stefano, You were right, the new fts geometry was not in sync with the stored params.root. Updating the parameter file solved then the problem. Thanks !