GSI Forum - RDF feed
type: channel
description: GSI Helmholtzzentrum für Schwerionenforschung
items: A bug in FairRootManager

A bug in FairRootManager
type: item
description: The Data Exchange between tasks is supported by FairRootManager. In normal, different TClonesArray in many tasks are created and registered in FairRootManager, then also could be retrieved. FairRootManager provides many interfaces to do that. For example, create and register a TClonesArray in a way (A) fEmcDigiArray = new TClonesArray("PndEmcDigi");// PndEmcDigi, Class Name FairRootManager::Instance()->Register("EmcDigi", "Emc", fEmcDigiArray, kTRUE); where "PndEmcDigi" is the Class Name, "EmcDigi" is the Branch Name, "Emc" is the Folder Name. or another way, (B) fEmcDigiArray = FairRootManager::Instance()->Register("EmcDigi", "PndEmcDigi", "Emc", kTRUE); However, when we want to retrieve this branch, fEmcDigiArrayRef = FairRootManager::Instance()->GetTClonesArray("EmcDigi"); retrieval fails when in way of (A), and succeeds in way of (B). The reason for that is a bug inside FairRootManager. When invoking (B), an active container (std::map) was filled, and skipped when invoking (A). So please either uniform a standard interface or make a new logic.
creator: Jifeng Hu
date: 2014-01-15T08:34:09-00:00