Hi Kathrin,
You need to separate the header in a file named analyze.h. I.e:
analyze.h
>>>>>>>>>>>>>>>>>>> #include <vector> #include <TLorentzVector.h>
>>>>>>>>>>>>>>>>>>>
analyze.C
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
You may also need to add #include <TMatrix.h>
Could you send me your root file so that I can verify and/or fix any problem?
Thanks,
Philippe.
On 2/2/10 1:14 PM, Kathrin Stoerig wrote:
> Hi all,
>
> I try to use "MakeProxy" on a ROOTfile (mostly containing flat data
> and some vector<TLorentzVectors>) as a first step with an simple
> analysis script which should just print the eventNumber.
>
> analyze.C
> >>>>>>>>>>>>>>>>>>>
> #include <vector>
> #include <TLorentzVector.h>
> #include <iostream>
> #include <fstream>
>
> double analyze(){
> cout<<"Event properties: "<<eventNumber<<endl;
> return (double)eventNumber;
> }
> >>>>>>>>>>>>>>>>>>>
>
> My ROOT-version is 5-26a.
> When I try to execute (as suggested in the documentation):
>
> TChain *c = new TChain("susy");
> c->Add("...")
> c.Draw("analyze.C+")
>
> I get the following error messages. Any help is very welcome.
>
> Kind regards,
> Kathrin
>
>
> ***********************************************************************************
>
>
> Warning in <TTreePlayer::DrawScript>: TTreeProxy does not work in
> interpreted mode yet. The script will be compiled.
> Info in <TTreePlayer::DrawScript>: Will process tree/chain using
> generatedSel.h+
> Info in <TUnixSystem::ACLiC>: creating shared library
> /localscratch/proof/proxy/./generatedSel_h.so
> Limitation: Can't instantiate precompiled template
> TMatrixTBase<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFBasefwd.h:28:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTBase<Double_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixDBasefwd.h:28:
>
> Limitation: Can't instantiate precompiled template TMatrixT<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFfwd.h:25:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTRow_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:56:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTColumn_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:57:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTDiag_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:58:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTFlat_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:59:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSub_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:60:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSparseRow_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:61:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSparseDiag_const<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:62:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTRow<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:64:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTColumn<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:65:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTDiag<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:66:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTFlat<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:67:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSub<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:68:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSparseRow<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:69:
>
> Limitation: Can't instantiate precompiled template
> TMatrixTSparseDiag<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrixFUtilsfwd.h:70:
>
> Limitation: Can't instantiate precompiled template TMatrixT<Float_t>
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMatrix.h:26:
>
> Warning: Error occurred during reading source files
> Note: Link requested for already precompiled class
> vector<float,allocator<float> > (ignore this message) :0:
> Warning: Error occurred during dictionary source generation
> !!!Removing /localscratch/proof/proxy/./generatedSel_h_ACLiC_dict.cxx
> /localscratch/proof/proxy/./generatedSel_h_ACLiC_dict.h !!!
> Error:
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/bin/rootcint:
> error loading headers...
> Error in <ACLiC>: Dictionary generation failed!
> Info in <ACLiC>: Invoking compiler to check macro's validity
> generatedSel_h_ACLiC.check.cxx:72: error: ISO C++ forbids declaration
> of ‘TLorentzVector’ with no type
> generatedSel_h_ACLiC.check.cxx:72: error: expected ‘;’ before ‘&’ token
> generatedSel_h_ACLiC.check.cxx:73: error: expected ‘;’ before ‘const’
> generatedSel_h_ACLiC.check.cxx:73: error: ISO C++ forbids declaration
> of ‘TLorentzVector’ with no type
> generatedSel_h_ACLiC.check.cxx:73: error: expected ‘;’ before ‘&’ token
> generatedSel_h_ACLiC.check.cxx:74: error: expected ‘;’ before ‘Int_t’
> generatedSel_h_ACLiC.check.cxx:75: error: ‘TLorentzVector’ was not
> declared in this scope
> generatedSel_h_ACLiC.check.cxx:75: error: template argument 1 is invalid
> generatedSel_h_ACLiC.check.cxx:75: error: template argument 2 is invalid
> generatedSel_h_ACLiC.check.cxx:76: error: ‘TLorentzVector’ was not
> declared in this scope
> generatedSel_h_ACLiC.check.cxx:76: error: template argument 1 is invalid
> generatedSel_h_ACLiC.check.cxx:76: error: template argument 2 is invalid
> generatedSel_h_ACLiC.check.cxx:77: error: ‘TLorentzVector’ was not
> declared in this scope
> generatedSel_h_ACLiC.check.cxx:77: error: template argument 1 is invalid
> generatedSel_h_ACLiC.check.cxx:77: error: template argument 2 is invalid
> generatedSel_h_ACLiC.check.cxx:77: error: template argument 1 is invalid
> In file included from
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TLorentzVector.h:25,
>
> from analyze.C:4,
> from generatedSel_h_ACLiC.check.cxx:212:
> /afs/cern.ch/sw/lcg/app/releases/ROOT/5.26.00a/slc4_ia32_gcc43/root/include/TMath.h:36:
> error: expected unqualified-id before ‘namespace’
> generatedSel_h_ACLiC.check.cxx:341: error: expected ‘}’ at end of input
> generatedSel_h_ACLiC.check.cxx: In constructor
> ‘generatedSel::TStlPx_TLorentzVector::TStlPx_TLorentzVector(ROOT::TBranchProxyDirector*,
> const char*, const char*)’:
> generatedSel_h_ACLiC.check.cxx:64: error: member initializer
> expression list treated as compound expression
> generatedSel_h_ACLiC.check.cxx:64: warning: left-hand operand of comma
> has no effect
> generatedSel_h_ACLiC.check.cxx:64: warning: right-hand operand of
> comma has no effect
> generatedSel_h_ACLiC.check.cxx:64: error: invalid conversion from
> ‘const char*’ to ‘int’
> generatedSel_h_ACLiC.check.cxx: In constructor
> ‘generatedSel::TStlPx_TLorentzVector::TStlPx_TLorentzVector(ROOT::TBranchProxyDirector*,
> ROOT::TBranchProxy*, const char*, const char*, const char*)’:
> generatedSel_h_ACLiC.check.cxx:68: error: member initializer
> expression list treated as compound expression
> generatedSel_h_ACLiC.check.cxx:68: warning: left-hand operand of comma
> has no effect
> generatedSel_h_ACLiC.check.cxx:68: warning: right-hand operand of
> comma has no effect
> generatedSel_h_ACLiC.check.cxx:68: error: invalid conversion from
> ‘const char*’ to ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function
> ‘ROOT::TBranchProxy* generatedSel::TStlPx_TLorentzVector::GetProxy()’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member
> ‘GetProxy’ in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘void
> generatedSel::TStlPx_TLorentzVector::Reset()’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member ‘Reset’
> in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘bool
> generatedSel::TStlPx_TLorentzVector::Setup()’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member ‘Setup’
> in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘bool
> generatedSel::TStlPx_TLorentzVector::IsInitialized()’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member
> ‘IsInitialized’ in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘bool
> generatedSel::TStlPx_TLorentzVector::IsaPointer() const’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member
> ‘IsaPointer’ in ‘((const
> generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘const int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘bool
> generatedSel::TStlPx_TLorentzVector::Read()’:
> generatedSel_h_ACLiC.check.cxx:71: error: request for member ‘Read’ in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘Int_t
> generatedSel::TStlPx_TLorentzVector::GetEntries()’:
> generatedSel_h_ACLiC.check.cxx:74: error: request for member ‘GetPtr’
> in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: In member function ‘const int*
> generatedSel::TStlPx_TLorentzVector::operator->()’:
> generatedSel_h_ACLiC.check.cxx:75: error: request for member ‘GetPtr’
> in
> ‘((generatedSel::TStlPx_TLorentzVector*)this)->generatedSel::TStlPx_TLorentzVector::obj’,
> which is of non-class type ‘int’
> generatedSel_h_ACLiC.check.cxx: At global scope:
> generatedSel_h_ACLiC.check.cxx:208: error: expected unqualified-id at
> end of input
> Error in <TSelector::GetSelector>: file generatedSel.h+ does not have
> a valid class deriving from TSelector
>
>
Received on Tue Feb 02 2010 - 20:37:30 CET
This archive was generated by hypermail 2.2.0 : Tue Feb 02 2010 - 23:50:02 CET