Re: copy selected entries of subset of chain

From: Philippe Canal <pcanal_at_fnal.gov>
Date: Sun, 17 Apr 2011 10:21:01 -0500


Hi Margar,

> I assume that newTree will be written on a singe file, the input
> is read from multiple. Is this supposed to work as well?

Yes, it should work perfectly. However please see the documentation of TTree::ChangeFile for another possible issue.

Cheers,
Philippe.

On 4/17/11 5:07 AM, Margar Simonyan wrote:
> Hi Philippe
>
> the code was crushing at the end (but works fine on singe tree), I
> thought it was caused by missing brunches. I have to investigate
> further, but before doing I have one more question. After cloning the
> input chain I add new branches to the new tree (it does not exist in
> the chain)
>
> branch = newTree->Branch("var",&var, "var/O");
>
> and var is calculated during event selection. I assume that newTree
> will be written on a singe file, the input is read from multiple. Is
> this supposed to work as well?
>
> Thanks,
> Margar
>
>
> On Fri, Apr 15, 2011 at 5:08 PM, Philippe Canal<pcanal_at_fnal.gov> wrote:
>> Hi Margar,
>>
>>> Since all branches of chain are active at that point, it tries to set
>>> address for newTree for branches that newTree does not have.
>> This should 'only' result in a warning (that you can suppress by
>> changing the value of gErrorIgnoreLevel). So besides these warnings
>> what else is not working correctly?
>>
>> Cheers,
>> Philippe.
>>
>>
>> On 4/12/11 8:18 AM, Margar Simonyan wrote:
>>> Hi Philippe
>>>
>>> when the second file is opened and, if I understand well, ROOT changes
>>> branch addresses of chain, it also forwards the changes to newTree.
>>> Since all branches of chain are active at that point, it tries to set
>>> address for newTree for branches that newTree does not have. This is
>>> at least one problem.
>>>
>>> Thanks,
>>> Margar
>>>
>>>
>>> On Tue, Apr 12, 2011 at 3:06 PM, Philippe Canal<pcanal_at_fnal.gov> wrote:
>>>> Hi Margar,
>>>>
>>>> Then all the ingredients are there and it should work ... unless their
>>>> ordering
>>>> and calls are wrongly set (I would need more code to know).
>>>>
>>>> Cheers,
>>>> Philippe.
>>>>
>>>> On 4/12/11 8:02 AM, Margar Simonyan wrote:
>>>>> Hi Philippe
>>>>>
>>>>> sorry, that was a typo in the e-mail, I have
>>>>> chain->SetBranchStatus("*", 1) in the code, as well as LoadEntry,
>>>>> GetEntry etc.
>>>>>
>>>>> Margar
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Apr 12, 2011 at 2:58 PM, Philippe Canal<pcanal_at_fnal.gov>
>>>>> wrote:
>>>>>> Hi Margar,
>>>>>>
>>>>>> (Besides the missing LoadEntry, GetEntry and SetBranchAddress which I
>>>>>> assume
>>>>>> are in the routines
>>>>>> you did no show), it seems that the problem is the 2nd argument of the
>>>>>> 2nd
>>>>>> SetBranchStatus,
>>>>>> I think it should read:
>>>>>>
>>>>>> chain->SetBranchStatus("*", 1);
>>>>>>
>>>>>> Cheers,
>>>>>> Philippe.
>>>>>>
>>>>>> On 4/12/11 2:43 AM, Margar Simonyan wrote:
>>>>>>> Hello ROOTTalk
>>>>>>>
>>>>>>> I would like to copy selected entries of some branches of TChain to
>>>>>>> another tree. So far my attempt work for single tree but not for a
>>>>>>> chain. Simplified logic looks like this:
>>>>>>>
>>>>>>> type var1;
>>>>>>> TBranch * b1=0;
>>>>>>> chain->SetBranchAddress("var1",&var1,&b)
>>>>>>>
>>>>>>> chain->SetBranchStatus("*", 0)
>>>>>>> chain->SetBranchStatus("var1", 1);
>>>>>>>
>>>>>>> f = TFile::Open("file.root", "UPDATE");
>>>>>>> newTree = chain->CloneTree(0);
>>>>>>>
>>>>>>> now have to enable all branches since they are needed for event
>>>>>>> selection
>>>>>>> chain->SetBranchStatus("*", 0);
>>>>>>> for(; ; )
>>>>>>> if(selection_function())
>>>>>>> newTree->Fill()
>>>>>>>
>>>>>>>
>>>>>>> The trees are connected and when a new file is opened in chain things
>>>>>>> go wrong. I tried reseting the branch addresses, but it didn't work.
>>>>>>> Is there any way to get it working?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Margar
>>>>>>>
>>>>>>>
>>>>>>> -------------------------------------------------------------------------
>>>>>>> Dr Margar Simonyan, post-doctoral researcher
>>>>>>> Niels Bohr Institute, Copenhagen University
>>>>>>>
>>>>>>>
>>>>>>> -------------------------------------------------------------------------
>>>>>>>
Received on Sun Apr 17 2011 - 17:21:10 CEST

This archive was generated by hypermail 2.2.0 : Mon Apr 18 2011 - 05:50:01 CEST