hi everyone... SORRY... i was out for some time :-). by the way, i am using root version 3.02/06 and my operating system is redhat linux 7.1... the problem is this: i have a tree file containing data and i want to put some cuts on the data. i have 31 cuts and root allows only less than 10... and i want these cuts to be applied simulatneously... the SHORTENED code is found below: ============================================================== ============================================================== ============================================================== ////////////////////////////////////////////////// // Reading and Making Histograms of TTree Files // ////////////////////////////////////////////////// Char_t *inputfile = "i02zh6janl.root"; Char_t *outputfile= "zh6janlcuthist02.root"; TCanvas *dHist; Double_t kmin = 0.0; Double_t kmax = 300.0; Int_t kbin = 150; //------------------------------- void InitHist() { hfPt = new TH1F("hfPt","Transverse Momentum",kbin,kmin,kmax); hfPt->SetXTitle("hfPt"); hfEvis = new TH1F("hfEvis","Visible Energy",kbin,kmin,kmax); hfEvis->SetXTitle("hfEvis"); // I HAVE 33 HISTOGRAMS HERE AND ALL OF THEM ARE IN THE INPUT // FILE... hfNjets = new TH1F("hfNjets","Number of Jets",100,0,100); hfNjets->SetXTitle("hfNjets"); hfEjet = new TH1F("hfEjet","Energy of Jets",kbin,kmin,kmax); hfEjet->SetXTitle("hfEjet"); } //-------------------------------------------------------// void READTTreeFile02() //FILENAME: READTTreeFile02.C { TFile *f1, *f2; f1 = new TFile(inputfile,"READ"); TTree *T0 = (TTree*)f1.Get("analysis"); // "analysis" tree name f2 = new TFile(outputfile, "RECREATE"); // BELOW ARE THE CUTS... 31 OF THEM... TCut cut0 = "fEvis>=240 && fPt<=20 && fPl>=-25 && fPl<=25"; // cut0 is a combination of 4 cuts/conditions TCut cut1 = "fThrust>=0.650 && fThrust<=0.825 && fFYmax>=0.0025"; TCut cut2 = "fNjets>=80 && fEjet>=10 && fEjet<=120 && fNchg>=30"; TCut cut3 = "fMassZ>=40 && fMassZ<=150 && fEnergyZ>=75 && fEnergyZ<=200 && fPabsZ>=40 && fPabsZ<=110"; TCut cut4 = "fMassW>=30 && fMassW<=120 && fEnergyW>=40 && fEnergyW<=140 && fPabsW>=20 && fPabsW<=100"; TCut cut5 = "fMassWstar>=20 && fMassWstar<=110 && fEnergyWstar>=30"; TCut cut6 = "fEnergyWstar<=130 && fPabsWstar>=15 && fPabsWstar<=100"; TCut cut7 = "fXsquareMass<=15 && fXsquareEner<=5 && fXsquarePabs<=10"; dHist = new TCanvas("dHist","Canvas2",100,100,1000,1000); dHist->Divide(6,6); InitHist(); // CUTS ARE APPLIED HERE... dHist->cd(1); T0.Draw("fPt>>hfPt", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); dHist->cd(2); T0.Draw("fPl>>hfPl", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); dHist->cd(3); T0.Draw("fEvis>>hfEvis", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); dHist->cd(4); T0.Draw("fNchg>>hfNchg", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); dHist->cd(5); T0.Draw("fThrust>>hfThrust", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); dHist->cd(6); T0.Draw("fFYcut>>hfFYcut", cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7); // THE REST OF THE HISTOGRAMS FOLLOW... f2.Write(); } ============================================================== ============================================================== ============================================================== AND THE ERROR... ============================================================== ============================================================== ============================================================== ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.02/06 9 March 2002 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* Compiled for linux with thread support. CINT/ROOT C/C++ Interpreter version 5.15.21, Dec 8 2001 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] Processing READTTreeFile01.C... Error: Can't call TTree::Draw("fPt>>hfPt",cut0,cut1,cut2,cut3,cut4,cut5,cut6,cut7) in current scope FILE:READTTreeFile01.C LINE:146 Possible candidates are... filename line:size busy function type and name (in TTree) (compiled) 0:0 0 public: virtual void Draw(Option_t* opt); (compiled) 0:0 0 public: virtual Int_t Draw(const char* varexp,TCut selection,Option_t* option=,Int_t nentries=1000000000,Int_t firstentry=0); (compiled) 0:0 0 public: virtual Int_t Draw(const char* varexp,const char* selection,Option_t* option=,Int_t nentries=1000000000,Int_t firstentry=0); //*MENU* filename line:size busy function type and name (in TNamed) filename line:size busy function type and name (in TObject) (compiled) 0:0 0 public: virtual void Draw(Option_t* option=); filename line:size busy function type and name (in TAttLine) filename line:size busy function type and name (in TAttFill) filename line:size busy function type and name (in TAttMarker) *** Interpreter error recovered *** root [1] ============================================================== ============================================================== ============================================================== if i put only "cut0 && cut5" or "cut3" it works but not when i put "cut0, cut1, cut2, cut3, cut4, cut5, cut6, cut7". please help me... jaybee b. magallanes csm, msuiit _______________________________________________________________________ Committed to Excellence in Science and Technology http://www.msuiit.edu.ph/ Are you an MSUan? Join the MSU International Alumni Homecoming 2002 Logon http://www.msu-system.org/ for details.
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:53 MET