Hi Philippes,
I understand your point but if I dont close the file, then? I am getting same error then also, When I get Entries of the histogram,
bool* retrieve(string filename, string key, TObject& objectToSendBack) {*
{
TFile file(filename.c_str(),"READ");
int bytes = objectToSendBack.Read(key.c_str());
cout << " retrieved bytes=\t" << bytes << "\t of \t" << "\t filename=
\t"<< filename << "\t with :key:: \t" << key << endl;
// file.Close();
bool success = (bytes > 0);
return success;
}
*if(doShowFitToPythia) {*
//get Pythia reco spectrum and fit it to show the function works.
gPad->SetLogy(kTRUE);
// gPad->SetLogx(kTRUE);
TH1F h_pythia;
cout<<"Retreiving file\t"<<endl;
retrieve(mcFile,"massMC",h_pythia);
*cout<<"files entries\t"<< h_pythia.GetEntries()<<endl;*
}
On Mon, Sep 19, 2011 at 6:07 PM, Philippe Canal <pcanal_at_fnal.gov> wrote:
> > TFile file(filename.c_str(),"READ");
> > int bytes = objectToSendBack.Read(key.c_str());
>
> Histogram are (by default) associated with the TFile they are read from
> and are deleted as soon as the TFile is close or deleted.
>
> See the ROOT's User Guide chapter on object ownership for more details.
>
> Cheers,
> Philippe.
>
>
> On 9/19/11 6:14 AM, Harinder Singh Bawa wrote:
>
> *Hello,
>
> Could someone points me what I am doing wrong???
>
> I am running Package under Root which is a set of functions.
>
> *********The main code function is doShowFitToPythia which is retreiving
> histogram from file and then scaling to Lumi.
>
> The problem is in retreiving function
>
> It is supposed to read filename, the key is histogram and it is supposed to
> fill to object named h_pythia [histogram]. But its not doing so.
>
> When I want to make sure , it reads "massMC" histogram and saved to
> h_pythia object, I wanted to print the entries. But it crashes saying
> Signalhandler error shown after the function definitions:
>
>
> if(doShowFitToPythia) {*
> //get Pythia reco spectrum and fit it to show the function works.
> gPad->SetLogy(kTRUE);
> // gPad->SetLogx(kTRUE);
> TH1F h_pythia;
>
> cout<<"Retreiving file\t"<<endl;
> retrieve(mcFile,"massMC",h_pythia);
>
> *cout<<"files entries\t"<< h_pythia.GetEntries()<<endl;**********I did
> it because I am using h_pythia in next function* *Functions like
> scaleToLumi expect a histogram, not a pointer to a histogram.
>
> * cout<<"file retreived\t"<<endl;
> scaleToLumi(h_pythia,lumi);
>
> cout<<"histogram scaled to lumi\t"<<endl;
> h_pythia = KeepBinsBetween(&h_pythia,massMin,massMax);
>
> h_pythia.Draw();
> print(cv);
> }
>
>
> bool* retrieve(string filename, string key, TObject& objectToSendBack) {*
> TFile file(filename.c_str(),"READ");
> int bytes = objectToSendBack.Read(key.c_str());
> cout << " retrieved bytes=\t" << bytes << "\t of \t" << "\t filename=
> \t"<< filename << "\t with :key:: \t" << key << endl;
> file.Close();
> bool success = (bytes > 0);
> return success;
> }
>
> *void scaleToLumi(TH1F& hist, const double& desiredLumi, double
> currentAssumedLumi = 1.) {*
>
> cout<<"hist entries=\t"<<h_pythia.GetEntries()<<endl;
>
> cout<<"calculating area\t"<<endl;
> double area = hist.Integral();
>
> cout<<"Area of Histogram=\t"<<area<<endl;
> assert (area != 0);
> hist.Scale(desiredLumi / currentAssumedLumi);
> return;
> }
>
>
>
> *
> ERROR:*******************************************************************
> [bawa_at_pt3nfs resonance_old]$ ./producePlotsForICHEP.bash
> part 1
> rm: cannot remove `setLimits_output.root': No such file or directory
>
> Processing setLimits.C...
> Error in <TROOT::SetStyle>: Unknown style:ATLAS
> Info in <TCanvas::Print>: ps file pics/all.ps has been created
> Command to : doShowFitToPythia
> nominalDataFile = signal/june2011_B-H1/dijetMass_data.root
> mcFile = signal/june2011_B-H1/dijetMass_mc_noK.root
> nominalSignalsFile = signal/june2011_B-H1/dijetMass_exq.root
> Setting luminosity to 163.4 pb^-1
> Setting massMin to 700 GeV
> Setting massMax to 6000 GeV
> Setting outputFilename to setLimits_output.root
> Retreiving file
> retrieved bytes= 983 of filename=
> signal/june2011_B-H1/dijetMass_mc_noK.root with :key:: massMC
> file retreived
>
> *** Break *** segmentation violation
> file entries=
>
>
> ===========================================================
> There was a crash (#7 0xf7a0b5fd in SigHandler(ESignals) ()).
> This is the entire stack trace of all threads:
> ===========================================================
> #0 0xffffe410 in __kernel_vsyscall ()
> #1 0x00c37833 in __waitpid_nocancel () from /lib/libc.so.6
> #2 0x00bdc19b in do_system () from /lib/libc.so.6
> #3 0x00d40ead in system () from /lib/libpthread.so.0
> #4 0xf7a05ffd in TUnixSystem::Exec(char const*) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #5 0xf7a0bbe6 in TUnixSystem::StackTrace() ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #6 0xf7a0b4e7 in TUnixSystem::DispatchSignals(ESignals) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #7 0xf7a0b5fd in SigHandler(ESignals) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #8 0xf7a02a32 in sighandler(int) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #9 <signal handler called>
> #10 0x09f25788 in ?? ()
> #11 0xf6a42ec2 in G__G__Hist_100_0_101(G__value*, char const*, G__param*,
> int)
> ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libHist.so
> #12 0xf7276056 in Cint::G__ExceptionWrapper(int (*)(G__value*, char const*,
> G__param*, int), G__value*, char*, G__param*, int) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #13 0xf732fd8c in G__execute_call ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #14 0xf7330b5f in G__call_cppfunc ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #15 0xf730affc in G__interpret_func ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #16 0xf72f7666 in G__getfunction ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #17 0xf73f1546 in G__getstructmem(int, G__FastAllocString&, char*, int,
> char*, int*, G__var_array*, int) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #18 0xf73e71cd in G__getvariable ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #19 0xf72c8ecf in G__getitem ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #20 0xf72d5711 in G__getexpr ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #21 0xf735ab76 in G__exec_statement ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #22 0xf7361a3a in G__exec_statement ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #23 0xf730a5f7 in G__interpret_func ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #24 0xf72f773f in G__getfunction ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #25 0xf72c8fd8 in G__getitem ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #26 0xf72cd53c in G__getexpr ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #27 0xf72dbaf5 in G__calc_internal ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #28 0xf736fda7 in G__process_cmd ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCint.so
> #29 0xf79c669c in TCint::ProcessLine(char const*,
> TInterpreter::EErrorCode*) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #30 0xf79c408f in TCint::ProcessLineSynch(char const*,
> TInterpreter::EErrorCode*) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #31 0xf7911c1f in TApplication::ExecuteFile(char const*, int*, bool) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #32 0xf7911efc in TApplication::ProcessFile(char const*, int*, bool) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #33 0xf790f5ff in TApplication::ProcessLine(char const*, bool, int*) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libCore.so
> #34 0xf700ce51 in TRint::Run(bool) ()
> from
> /nfs/t3nfs/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00f-slc5-gcc4.3-i686/lib/libRint.so
> #35 0x08048db5 in main ()
> ===========================================================
>
>
> The lines below might hint at the cause of the crash.
> If they do not help you then please submit a bug report at
> http://root.cern.ch/bugs. Please post the ENTIRE stack trace
> from above as an attachment in addition to anything else
> that might help us fixing this issue.
> ===========================================================
> #10 0x09f25788 in ?? ()
> ===========================================================
>
>
Received on Mon Sep 19 2011 - 18:23:28 CEST
This archive was generated by hypermail 2.2.0 : Mon Sep 19 2011 - 23:50:01 CEST