FairHit - why only 32bit precision?? [message #22104] |
Fri, 19 January 2018 12:05 |
Stefan Pflueger
Messages: 99 Registered: February 2012
|
continuous participant |
From: *specf.him.uni-mainz.de
|
|
Hi,
why is the position information of the FairHit saved to disk in only 32bit precision? See code snipped below
Quote:
Double32_t fDx, fDy, fDz; ///< Errors of position [cm]
Int_t fRefIndex; ///< Index of FairMCPoint for this hit
Int_t fDetectorID; ///< Detector unique identifier
Double32_t fX, fY, fZ; ///< Position of hit [cm]
I thought that at the end the whole reconstruction chain will be one big processing pipeline anyway (stacking of all fair tasks together), and there is no need to write any intermediate files to disk. So regarding this using Double32_t is fine (it only converts to 32bit precision when writing to disk). Unfortunately for debugging/development reasons the intermediate files are often written to disk and then read in by another macro+task. At this point the precision is lost (about a micron).
Therefore my question. Why not change it to normal double? Because for debug/development runs it does not matter if you dump the higher precision data on disk. And for the experiment runs you probably don't want to dump the FairHits to disk, right?
Best regards,
Stefan
|
|
|