Re: [ROOT] tree and streams

From: taylan yetkin (tyetkin@fnal.gov)
Date: Tue Aug 19 2003 - 11:02:40 MEST


Hi Philippe,


I am getting tons of warning messages starting from

 *** Break *** segmentation violation
 Generating stack trace...

if I use

etree->Draw(tower, tower < 3000);

or  if I change  above line  as

etree->Draw(tower, "tower < 3000");

I am getting this short warning:

*ERROR 26 :
 Unknown name : "tower"


Thanks


Philippe Canal wrote:

>Hi,
>
>  
>
>>etree->Draw(tower); <--------------------This also works, 
>>but when I want to put a cut like before root is complaining.
>>    
>>
>
>What kind of complain?  This should have worked with or without a cut.
>
>  
>
>>               rtree->GetBranch("info")->SetAddress(&info);
>>    
>>
>
>It would be better to use:
>	
>	rtree->SetBranchAddress("info",&info);
>
>Cheers,
>Philippe.
>
>-----Original Message-----
>From: owner-roottalk@pcroot.cern.ch
>[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of taylan yetkin
>Sent: Monday, August 18, 2003 8:36 AM
>To: roottalk@pcroot.cern.ch
>Subject: [ROOT] tree and streams
>
>
>Hi Rooters,
>I have a problem with my stream definitions in trees. Below you can see 
>a part from my code.
>
>
>while(!input_file.eof()){
>                char run_no[20];
>                int tower_no;
>                input_file >> run_no >> tower_no;
>                if (input_file.fail()) { break; }
>                int elmfiber = tower_no - 1;
>                int hadfiber = tower_no + 12;
>                char s[256];
>                char tower[256];
>                strstream sstream(s, 256, ios::in | ios::out);
>                sstream << "/reco/data/TB2003_JUL/" << run_no << ends;
>                strstream sstream(tower,256,ios::in |ios::out);
>                sstream << "towers[" << elmfiber << "].e+towers[" << 
>hadfiber<< "].e" << ends;
>         
>                TFile f(s);
>                TTree *rtree = (TTree *)f.Get("Run");
>                RecoInfo    *info    = new RecoInfo();
>                RecoRun     *run     = new RecoRun();
>                RecoEvent   *event   = new RecoEvent();
>                RecoTrigger *trigger = new RecoTrigger();
>                RecoPhase   *phase   = new RecoPhase();
>                RecoHCAL    *hcal    = new RecoHCAL();
>                RecoCluster *cluster = new RecoCluster();
>
>                rtree->GetBranch("info")->SetAddress(&info);
>                rtree->GetBranch("run")->SetAddress(&run);
>
>                TTree *etree = (TTree *)f.Get("Event");
>                etree->GetBranch("event")->SetAddress(&event);
>                etree->GetBranch("trigger")->SetAddress(&trigger);
>                etree->GetBranch("phase")->SetAddress(&phase);
>                etree->GetBranch("hcal")->SetAddress(&hcal);
>   
>              TCanvas *c1 = new TCanvas("c1","c1",20,10,900,600);
>
>               c1->Divide(2,1);
>               c1->cd(1);
>               etree->Draw("c3x3.e","c3x3.e<5000");       
><---------------This works without any problem.
>
>              c1->cd(2);
>              etree->Draw(tower); <--------------------This also works, 
>but when I want to put a cut like before root is complaining.
>
>
>
>How can I use Draw() method with all options for this tower stream.
>
>
>
>  
>



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET