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