GSI Helmholtzzentrum für Schwerionenforschung
This is basically a follow-up on my last post on the sorting of objects. Here's the situation: After having created EmcCluster objects, I shuffle them around and store them in newly formed groups in a new Tree. To get to some of the cluster properties, I need access to the base digis. However, Tobias pointed out to me that the EmcCluster only saves the integer of the position in the TClonesArray but not the event. Therefore, the standard way to access the digis cannot be used for the clusters in the new groups. He suggested to use EmcCluster::GetLinksWithType("EmcDigi") and then use FairRootManager::GetCloneOfLinkData(...), which I tried, but then the following happens: I try to access the links using FairMultiLinkedData digiLinks = clu->GetLinksWithType(FairRootManager::Instance()->GetBranchId("EmcDigi ")); with clu a pointer to an EmcCluster, but then digiLinks.GetNlinks() returns 0 for the PndEmcMakeCluster task, and sometimes 1 for PndEmcMakeClusterOnline (my own task), which uses cluster->AddLink(FairLink("EmcDigi",i)); instead of the more complicated scheme PndEmcMakeCluster uses. So it doesn't look like it finds any links. For the one it does sometimes find, it says that "FairLink (0/206/8/1/1)to EmcDigi delivers null" or "FairLink (-1/-1/7/1/1)to EmcDigi delivers null", depending on whether I use the branch with sorted digis or the normal one. I'm using a modified version of the PidCorrelator task, adding as input files the sim file, digi file, original cluster file (including the sorted clusters), and regrouped cluster file. Only the regrouped cluster file has a branch called "EmcCluster".