diff --git a/HROOT.cabal b/HROOT.cabal
new file mode 100644
--- /dev/null
+++ b/HROOT.cabal
@@ -0,0 +1,46 @@
+Name:		HROOT
+Version:	0.5.0.0
+Synopsis:	Wrapper for ROOT
+Description: 	Haskell FFI binding for ROOT  
+Homepage:       http://ianwookim.org/HROOT
+License: 	LGPL-2.1
+License-file:	LICENSE
+Author:		Ian-Woo Kim
+Maintainer: 	Ian-Woo Kim <ianwookim@gmail.com>
+Category:       Graphics
+Tested-with:    GHC >= 7.0.2 && <= 7.0.3
+Build-Type: 	Custom
+cabal-version:  >=1.6
+Extra-source-files: csrc/HROOT.h
+                    csrc/addon.h
+                    example/histadd.hs
+                    example/random1d.hs
+                    example/random2d.hs
+                    example/random2dApp.hs
+                    example/saveAsROOT.hs
+Source-repository head
+  type:     darcs
+  location: http://ianwookim.org/public/repo/HROOT
+
+
+Library
+  hs-source-dirs: src
+  ghc-options:  -Wall -funbox-strict-fields -fno-warn-unused-do-bind -fno-warn-orphans
+  ghc-prof-options: -caf-all -auto-all
+  Build-Depends:      base>4 && < 5
+  Exposed-Modules:    HROOT
+                      HROOT.Type
+                      HROOT.Function
+                      HROOT.Class
+                      HROOT.AddOn
+                      HROOT.AddOnFunction
+  extra-libraries:    stdc++
+  Extensions:	      ForeignFunctionInterface
+  Include-dirs:       csrc
+  Install-includes:   HROOT.h
+                      addon.h
+  C-sources:          csrc/HROOT.cpp
+                      csrc/addon.cpp
+   
+
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,502 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,33 @@
+#! /usr/bin/env runhaskell
+ 
+> import Distribution.Simple
+> import Distribution.Simple.Setup
+> import Distribution.PackageDescription
+> import Distribution.Simple.LocalBuildInfo
+>
+> import Config
+>
+> myconfigHook = simpleUserHooks { confHook = hookfunction } 
+>
+> hookfunction x y = do 
+>   binfo <- confHook simpleUserHooks x y 
+>   r_pbi <- config binfo
+>   let pkg_descr = localPkgDescr binfo
+>   
+>   let newbinfo = case r_pbi of 
+>                    Just pbi ->  binfo { localPkgDescr = updatePackageDescription pbi pkg_descr }
+>                    Nothing -> do 
+>                      let r_lib = library pkg_descr 
+>                      case r_lib of
+>                        Just lib ->  
+>                          let binfo2 = libBuildInfo lib
+>                              newlib = lib { libBuildInfo = binfo2 { cSources = [] }}  
+>                          in  binfo { localPkgDescr = pkg_descr { library = Just newlib }}  
+>                        Nothing -> error "some library setting is wrong." 
+> --   putStrLn (show (localPkgDescr newbinfo))
+>   return newbinfo
+>  
+>
+> main = defaultMainWithHooks myconfigHook
+>
+
diff --git a/csrc/HROOT.cpp b/csrc/HROOT.cpp
new file mode 100644
--- /dev/null
+++ b/csrc/HROOT.cpp
@@ -0,0 +1,2072 @@
+#include <iostream>
+
+#include "HROOT.h"
+
+#include "TMath.h"
+#include "TFile.h"
+#include "TStyle.h"
+#include "TLatex.h"
+#include "TTree.h"
+#include "TChain.h"
+#include "THStack.h"
+
+#include "TNamed.h"
+
+#include "TAtt3D.h"
+#include "TAttAxis.h"
+#include "TAttBBox.h"
+#include "TAttCanvas.h"
+#include "TAttFill.h"
+#include "TAttImage.h"
+#include "TAttLine.h"
+#include "TAttMarker.h"
+#include "TAttPad.h"
+#include "TAttParticle.h"
+#include "TAttText.h"
+
+#include "TGraph.h"
+#include "TGraphAsymmErrors.h"
+#include "TCutG.h"
+#include "TGraphBentErrors.h"
+#include "TGraphErrors.h"
+#include "TGraphPolar.h"
+#include "TGraphQQ.h"
+
+#include "TEllipse.h"
+#include "TArc.h"
+#include "TCrown.h"
+#include "TLine.h"
+#include "TArrow.h"
+#include "TGaxis.h"
+#include "TShape.h"
+#include "TBRIK.h"
+#include "TTUBE.h"
+#include "TPCON.h"
+#include "TPolyLineShape.h"
+#include "TSPHE.h"
+#include "TXTRU.h"
+#include "TBox.h"
+#include "TPave.h"
+#include "TPaveText.h"
+#include "TDiamond.h"
+#include "TPaveStats.h"
+#include "TPavesText.h"
+#include "TLegend.h"
+#include "TPaletteAxis.h"
+#include "TPaveLabel.h"
+#include "TPaveClass.h"
+#include "TWbox.h"
+#include "TFrame.h"
+#include "TSliderBox.h"
+#include "TChain.h"
+#include "TProofChain.h"
+#include "THbookTree.h"
+#include "TNtuple.h"
+#include "TNtupleD.h"
+#include "TTreeSQL.h"
+
+#include "TPolyLine.h"
+#include "TCurlyLine.h"
+#include "TCurlyArc.h"
+#include "TEfficiency.h"
+
+
+#include "TLorentzVector.h"
+#include "TStyle.h" 
+#include "TF1.h"
+#include "TAxis.h"
+
+#include "TLine.h"
+#include "TWbox.h"
+
+#include "TArray.h"
+#include "TArrayC.h"
+#include "TArrayD.h"
+#include "TArrayF.h"
+#include "TArrayI.h"
+#include "TArrayL.h"
+#include "TArrayL64.h"
+
+#include "TH1.h"
+#include "TH2.h"
+#include "TH3.h"
+
+#include "TH1C.h"
+#include "TH1D.h"
+#include "TH1F.h"
+#include "TH1I.h"
+#include "TH1S.h"
+
+#include "TH2C.h"
+#include "TH2D.h"
+#include "TH2F.h"
+#include "TH2I.h"
+#include "TH2Poly.h"
+//#include "TH2S"
+
+#include "TH3C.h"
+#include "TH3D.h"
+#include "TH3F.h"
+#include "TH3I.h"
+#include "TH3S.h"
+
+#include "TQObject.h"
+#include "TVirtualPad.h"
+#include "TPad.h"
+#include "TButton.h"
+#include "TGroupButton.h"
+#include "TCanvas.h"
+#include "TDialogCanvas.h"
+#include "TInspectCanvas.h"
+#include "TEvePad.h"
+#include "TSlider.h"
+
+
+
+#include "TTreePlayer.h"
+#include "TApplication.h"
+#include "TRint.h"
+
+using namespace std;
+
+
+template<class ToType, class FromType>
+const ToType* to_const(const FromType* x) {
+  return reinterpret_cast<const ToType*>(x);
+}
+
+template<class ToType, class FromType>
+ToType* to_nonconst(FromType* x) {
+  return reinterpret_cast<ToType*>(x);
+}
+
+
+
+#undef ROOT_TOBJECT_DEFINITIONVIRT
+#define ROOT_TOBJECT_DEFINITIONVIRT(Type)\
+const char * Type ## _GetName ( Type ## _p p )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->GetName();\
+}\
+void Type ## _Draw ( Type ## _p p, const char * option )\
+{\
+to_nonconst<Type,Type ## _t>(p)->Draw(option);\
+}\
+void Type ## _SaveAs ( Type ## _p p, const char * filename, const char * option )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SaveAs(filename, option);\
+}\
+int  Type ## _Write ( Type ## _p p, const char * name, int  option, int  bufsize )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->Write(name, option, bufsize);\
+}
+
+#undef ROOT_TNAMED_DEFINITIONVIRT
+#define ROOT_TNAMED_DEFINITIONVIRT(Type)\
+void Type ## _SetTitle ( Type ## _p p, const char * name )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTitle(name);\
+}
+
+#undef ROOT_TFORMULA_DEFINITIONVIRT
+#define ROOT_TFORMULA_DEFINITIONVIRT(Type)\
+double Type ## _GetParameter ( Type ## _p p, int  idx )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->GetParameter(idx);\
+}\
+void Type ## _SetParameter ( Type ## _p p, int  idx, double value )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetParameter(idx, value);\
+}
+
+#undef ROOT_TATT3D_DEFINITIONVIRT
+#define ROOT_TATT3D_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTAXIS_DEFINITIONVIRT
+#define ROOT_TATTAXIS_DEFINITIONVIRT(Type)\
+void Type ## _SetLabelColor ( Type ## _p p, int  color )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetLabelColor(color);\
+}\
+void Type ## _SetLabelSize ( Type ## _p p, double size )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetLabelSize(size);\
+}\
+void Type ## _SetTickLength ( Type ## _p p, double length )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTickLength(length);\
+}\
+void Type ## _SetTitleOffset ( Type ## _p p, double offset )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTitleOffset(offset);\
+}\
+void Type ## _SetNdivisions ( Type ## _p p, int  n, int optim )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetNdivisions(n, optim);\
+}
+
+#undef ROOT_TATTBBOX_DEFINITIONVIRT
+#define ROOT_TATTBBOX_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTCANVAS_DEFINITIONVIRT
+#define ROOT_TATTCANVAS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTFILL_DEFINITIONVIRT
+#define ROOT_TATTFILL_DEFINITIONVIRT(Type)\
+void Type ## _SetFillColor ( Type ## _p p, int  color )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetFillColor(color);\
+}\
+void Type ## _SetFillStyle ( Type ## _p p, int  style )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetFillStyle(style);\
+}
+
+#undef ROOT_TATTIMAGE_DEFINITIONVIRT
+#define ROOT_TATTIMAGE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTLINE_DEFINITIONVIRT
+#define ROOT_TATTLINE_DEFINITIONVIRT(Type)\
+void Type ## _SetLineColor ( Type ## _p p, int  color )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetLineColor(color);\
+}
+
+#undef ROOT_TATTMARKER_DEFINITIONVIRT
+#define ROOT_TATTMARKER_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTPAD_DEFINITIONVIRT
+#define ROOT_TATTPAD_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTPARTICLE_DEFINITIONVIRT
+#define ROOT_TATTPARTICLE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TATTTEXT_DEFINITIONVIRT
+#define ROOT_TATTTEXT_DEFINITIONVIRT(Type)\
+void Type ## _SetTextColor ( Type ## _p p, int  tcolor )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTextColor(tcolor);\
+}\
+void Type ## _SetTextAlign ( Type ## _p p, int  align )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTextAlign(align);\
+}\
+void Type ## _SetTextSize ( Type ## _p p, double tsize )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetTextSize(tsize);\
+}
+
+#undef ROOT_THSTACK_DEFINITIONVIRT
+#define ROOT_THSTACK_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TF1_DEFINITIONVIRT
+#define ROOT_TF1_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPH_DEFINITIONVIRT
+#define ROOT_TGRAPH_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPHASYMMERRORS_DEFINITIONVIRT
+#define ROOT_TGRAPHASYMMERRORS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCUTG_DEFINITIONVIRT
+#define ROOT_TCUTG_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPHBENTERRORS_DEFINITIONVIRT
+#define ROOT_TGRAPHBENTERRORS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPHERRORS_DEFINITIONVIRT
+#define ROOT_TGRAPHERRORS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPHPOLAR_DEFINITIONVIRT
+#define ROOT_TGRAPHPOLAR_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGRAPHQQ_DEFINITIONVIRT
+#define ROOT_TGRAPHQQ_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TELLIPSE_DEFINITIONVIRT
+#define ROOT_TELLIPSE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARC_DEFINITIONVIRT
+#define ROOT_TARC_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCROWN_DEFINITIONVIRT
+#define ROOT_TCROWN_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TLINE_DEFINITIONVIRT
+#define ROOT_TLINE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARROW_DEFINITIONVIRT
+#define ROOT_TARROW_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGAXIS_DEFINITIONVIRT
+#define ROOT_TGAXIS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TSHAPE_DEFINITIONVIRT
+#define ROOT_TSHAPE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TBRIK_DEFINITIONVIRT
+#define ROOT_TBRIK_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TTUBE_DEFINITIONVIRT
+#define ROOT_TTUBE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPCON_DEFINITIONVIRT
+#define ROOT_TPCON_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPOLYLINESHAPE_DEFINITIONVIRT
+#define ROOT_TPOLYLINESHAPE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TSPHE_DEFINITIONVIRT
+#define ROOT_TSPHE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TXTRU_DEFINITIONVIRT
+#define ROOT_TXTRU_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TBOX_DEFINITIONVIRT
+#define ROOT_TBOX_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVE_DEFINITIONVIRT
+#define ROOT_TPAVE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVETEXT_DEFINITIONVIRT
+#define ROOT_TPAVETEXT_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TDIAMOND_DEFINITIONVIRT
+#define ROOT_TDIAMOND_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVESTATS_DEFINITIONVIRT
+#define ROOT_TPAVESTATS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVESTEXT_DEFINITIONVIRT
+#define ROOT_TPAVESTEXT_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TLEGEND_DEFINITIONVIRT
+#define ROOT_TLEGEND_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVELABEL_DEFINITIONVIRT
+#define ROOT_TPAVELABEL_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPAVECLASS_DEFINITIONVIRT
+#define ROOT_TPAVECLASS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TWBOX_DEFINITIONVIRT
+#define ROOT_TWBOX_DEFINITIONVIRT(Type)\
+void Type ## _SetBorderMode ( Type ## _p p, int  bordermode )\
+{\
+to_nonconst<Type,Type ## _t>(p)->SetBorderMode(bordermode);\
+}
+
+#undef ROOT_TFRAME_DEFINITIONVIRT
+#define ROOT_TFRAME_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TSLIDERBOX_DEFINITIONVIRT
+#define ROOT_TSLIDERBOX_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TTREE_DEFINITIONVIRT
+#define ROOT_TTREE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCHAIN_DEFINITIONVIRT
+#define ROOT_TCHAIN_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TNTUPLE_DEFINITIONVIRT
+#define ROOT_TNTUPLE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TNTUPLED_DEFINITIONVIRT
+#define ROOT_TNTUPLED_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TTREESQL_DEFINITIONVIRT
+#define ROOT_TTREESQL_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TPOLYLINE_DEFINITIONVIRT
+#define ROOT_TPOLYLINE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCURLYLINE_DEFINITIONVIRT
+#define ROOT_TCURLYLINE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCURLYARC_DEFINITIONVIRT
+#define ROOT_TCURLYARC_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TEFFICIENCY_DEFINITIONVIRT
+#define ROOT_TEFFICIENCY_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TAXIS_DEFINITIONVIRT
+#define ROOT_TAXIS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TLATEX_DEFINITIONVIRT
+#define ROOT_TLATEX_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TTEXT_DEFINITIONVIRT
+#define ROOT_TTEXT_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TDIRECTORY_DEFINITIONVIRT
+#define ROOT_TDIRECTORY_DEFINITIONVIRT(Type)\
+void Type ## _Close ( Type ## _p p, const char * option )\
+{\
+to_nonconst<Type,Type ## _t>(p)->Close(option);\
+}
+
+#undef ROOT_TDIRECTORYFILE_DEFINITIONVIRT
+#define ROOT_TDIRECTORYFILE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TFILE_DEFINITIONVIRT
+#define ROOT_TFILE_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TBRANCH_DEFINITIONVIRT
+#define ROOT_TBRANCH_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TVIRTUALTREEPLAYER_DEFINITIONVIRT
+#define ROOT_TVIRTUALTREEPLAYER_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TTREEPLAYER_DEFINITIONVIRT
+#define ROOT_TTREEPLAYER_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAY_DEFINITIONVIRT
+#define ROOT_TARRAY_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYC_DEFINITIONVIRT
+#define ROOT_TARRAYC_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYD_DEFINITIONVIRT
+#define ROOT_TARRAYD_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYF_DEFINITIONVIRT
+#define ROOT_TARRAYF_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYI_DEFINITIONVIRT
+#define ROOT_TARRAYI_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYL_DEFINITIONVIRT
+#define ROOT_TARRAYL_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYL64_DEFINITIONVIRT
+#define ROOT_TARRAYL64_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TARRAYS_DEFINITIONVIRT
+#define ROOT_TARRAYS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1_DEFINITIONVIRT
+#define ROOT_TH1_DEFINITIONVIRT(Type)\
+TAxis_p Type ## _GetXaxis ( Type ## _p p )\
+{\
+return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetXaxis());\
+}\
+TAxis_p Type ## _GetYaxis ( Type ## _p p )\
+{\
+return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetYaxis());\
+}\
+TAxis_p Type ## _GetZaxis ( Type ## _p p )\
+{\
+return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetZaxis());\
+}\
+void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 )\
+{\
+to_nonconst<Type,Type ## _t>(p)->Add(to_nonconst<TH1,TH1_t>(h1), c1);\
+}\
+int  Type ## _fill1 ( Type ## _p p, double x )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->Fill(x);\
+}
+
+#undef ROOT_TH2_DEFINITIONVIRT
+#define ROOT_TH2_DEFINITIONVIRT(Type)\
+int  Type ## _fill2 ( Type ## _p p, double x, double y )\
+{\
+return to_nonconst<Type,Type ## _t>(p)->Fill(x, y);\
+}
+
+#undef ROOT_TH3_DEFINITIONVIRT
+#define ROOT_TH3_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1C_DEFINITIONVIRT
+#define ROOT_TH1C_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1D_DEFINITIONVIRT
+#define ROOT_TH1D_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1F_DEFINITIONVIRT
+#define ROOT_TH1F_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1I_DEFINITIONVIRT
+#define ROOT_TH1I_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH1S_DEFINITIONVIRT
+#define ROOT_TH1S_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2C_DEFINITIONVIRT
+#define ROOT_TH2C_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2D_DEFINITIONVIRT
+#define ROOT_TH2D_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2F_DEFINITIONVIRT
+#define ROOT_TH2F_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2I_DEFINITIONVIRT
+#define ROOT_TH2I_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2POLY_DEFINITIONVIRT
+#define ROOT_TH2POLY_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH2S_DEFINITIONVIRT
+#define ROOT_TH2S_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH3C_DEFINITIONVIRT
+#define ROOT_TH3C_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH3D_DEFINITIONVIRT
+#define ROOT_TH3D_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH3F_DEFINITIONVIRT
+#define ROOT_TH3F_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH3I_DEFINITIONVIRT
+#define ROOT_TH3I_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TH3S_DEFINITIONVIRT
+#define ROOT_TH3S_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TQOBJECT_DEFINITIONVIRT
+#define ROOT_TQOBJECT_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TVIRTUALPAD_DEFINITIONVIRT
+#define ROOT_TVIRTUALPAD_DEFINITIONVIRT(Type)\
+TFrame_p Type ## _GetFrame ( Type ## _p p )\
+{\
+return to_nonconst<TFrame_t,TFrame>((TFrame*)to_nonconst<Type,Type ## _t>(p)->GetFrame());\
+}\
+void Type ## _Range ( Type ## _p p, double x1, double y1, double x2, double y2 )\
+{\
+to_nonconst<Type,Type ## _t>(p)->Range(x1, y1, x2, y2);\
+}
+
+#undef ROOT_TPAD_DEFINITIONVIRT
+#define ROOT_TPAD_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TBUTTON_DEFINITIONVIRT
+#define ROOT_TBUTTON_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TGROUPBUTTON_DEFINITIONVIRT
+#define ROOT_TGROUPBUTTON_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TCANVAS_DEFINITIONVIRT
+#define ROOT_TCANVAS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TDIALOGCANVAS_DEFINITIONVIRT
+#define ROOT_TDIALOGCANVAS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TINSPECTCANVAS_DEFINITIONVIRT
+#define ROOT_TINSPECTCANVAS_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TEVEPAD_DEFINITIONVIRT
+#define ROOT_TEVEPAD_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TSLIDER_DEFINITIONVIRT
+#define ROOT_TSLIDER_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TAPPLICATION_DEFINITIONVIRT
+#define ROOT_TAPPLICATION_DEFINITIONVIRT(Type)\
+void Type ## _Run ( Type ## _p p, int retrn )\
+{\
+to_nonconst<Type,Type ## _t>(p)->Run(retrn);\
+}
+
+#undef ROOT_TRINT_DEFINITIONVIRT
+#define ROOT_TRINT_DEFINITIONVIRT(Type)\
+
+
+#undef ROOT_TOBJECT_DEFINITIONNONVIRT
+#define ROOT_TOBJECT_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTObject (  )\
+{\
+Type * newp = new Type (); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TNAMED_DEFINITIONNONVIRT
+#define ROOT_TNAMED_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTNamed ( const char * name, const char * title )\
+{\
+Type * newp = new Type (name, title); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TFORMULA_DEFINITIONNONVIRT
+#define ROOT_TFORMULA_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTFormula ( const char * name, const char * formula )\
+{\
+Type * newp = new Type (name, formula); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATT3D_DEFINITIONNONVIRT
+#define ROOT_TATT3D_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TATTAXIS_DEFINITIONNONVIRT
+#define ROOT_TATTAXIS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttAxis (  )\
+{\
+Type * newp = new Type (); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTBBOX_DEFINITIONNONVIRT
+#define ROOT_TATTBBOX_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TATTCANVAS_DEFINITIONNONVIRT
+#define ROOT_TATTCANVAS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttCanvas (  )\
+{\
+Type * newp = new Type (); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTFILL_DEFINITIONNONVIRT
+#define ROOT_TATTFILL_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttFill ( int  fcolor, int  fstyle )\
+{\
+Type * newp = new Type (fcolor, fstyle); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTIMAGE_DEFINITIONNONVIRT
+#define ROOT_TATTIMAGE_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TATTLINE_DEFINITIONNONVIRT
+#define ROOT_TATTLINE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttLine ( int  lcolor, int  lstyle, int  lwidth )\
+{\
+Type * newp = new Type (lcolor, lstyle, lwidth); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTMARKER_DEFINITIONNONVIRT
+#define ROOT_TATTMARKER_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttMarker ( int  color, int  style, int  msize )\
+{\
+Type * newp = new Type (color, style, msize); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTPAD_DEFINITIONNONVIRT
+#define ROOT_TATTPAD_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttPad (  )\
+{\
+Type * newp = new Type (); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TATTPARTICLE_DEFINITIONNONVIRT
+#define ROOT_TATTPARTICLE_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TATTTEXT_DEFINITIONNONVIRT
+#define ROOT_TATTTEXT_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTAttText ( int  align, double angle, int  color, int  font, double tsize )\
+{\
+Type * newp = new Type (align, angle, color, font, tsize); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_THSTACK_DEFINITIONNONVIRT
+#define ROOT_THSTACK_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTHStack ( const char * name, const char * title )\
+{\
+Type * newp = new Type (name, title); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TF1_DEFINITIONNONVIRT
+#define ROOT_TF1_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTF1 ( const char * name, const char * formula, double xmin, double xmax )\
+{\
+Type * newp = new Type (name, formula, xmin, xmax); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPH_DEFINITIONNONVIRT
+#define ROOT_TGRAPH_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraph ( int  n, double * x, double * y )\
+{\
+Type * newp = new Type (n, x, y); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPHASYMMERRORS_DEFINITIONNONVIRT
+#define ROOT_TGRAPHASYMMERRORS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraphAsymmErrors ( int  n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh )\
+{\
+Type * newp = new Type (n, x, y, exl, exh, eyl, eyh); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TCUTG_DEFINITIONNONVIRT
+#define ROOT_TCUTG_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTCutG ( const char * name, int  n, double * x, double * y )\
+{\
+Type * newp = new Type (name, n, x, y); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPHBENTERRORS_DEFINITIONNONVIRT
+#define ROOT_TGRAPHBENTERRORS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraphBentErrors ( int  n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd )\
+{\
+Type * newp = new Type (n, x, y, exl, exh, eyl, eyh, exld, exhd, eyld, eyhd); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPHERRORS_DEFINITIONNONVIRT
+#define ROOT_TGRAPHERRORS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraphErrors ( int  n, double * x, double * y, double * ex, double * ey )\
+{\
+Type * newp = new Type (n, x, y, ex, ey); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPHPOLAR_DEFINITIONNONVIRT
+#define ROOT_TGRAPHPOLAR_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraphPolar ( int  n, double * x, double * y, double * ex, double * ey )\
+{\
+Type * newp = new Type (n, x, y, ex, ey); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGRAPHQQ_DEFINITIONNONVIRT
+#define ROOT_TGRAPHQQ_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGraphQQ ( int  nx, double * x, int  ny, double * y )\
+{\
+Type * newp = new Type (nx, x, ny, y); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TELLIPSE_DEFINITIONNONVIRT
+#define ROOT_TELLIPSE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTEllipse ( double x1, double y1, double r1, double r2, double phimin, double phimax, double theta )\
+{\
+Type * newp = new Type (x1, y1, r1, r2, phimin, phimax, theta); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}
+
+#undef ROOT_TARC_DEFINITIONNONVIRT
+#define ROOT_TARC_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTArc ( double x1, double y1, double radius, double phimin, double phimax )\
+{\
+Type * newp = new Type (x1, y1, radius, phimin, phimax); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TCROWN_DEFINITIONNONVIRT
+#define ROOT_TCROWN_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTCrown ( double x1, double y1, double radin, double radout, double phimin, double phimax )\
+{\
+Type * newp = new Type (x1, y1, radin, radout, phimin, phimax); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TLINE_DEFINITIONNONVIRT
+#define ROOT_TLINE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTLine ( double x1, double y1, double x2, double y2 )\
+{\
+Type * newp = new Type (x1, y1, x2, y2); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TARROW_DEFINITIONNONVIRT
+#define ROOT_TARROW_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTArrow ( double x1, double y1, double x2, double y2, double arrowsize, const char * option )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, arrowsize, option); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TGAXIS_DEFINITIONNONVIRT
+#define ROOT_TGAXIS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTGaxis ( double xmin, double ymin, double xmax, double ymax, double wmin, double wmax, int  ndiv, const char * chopt, double gridlength )\
+{\
+Type * newp = new Type (xmin, ymin, xmax, ymax, wmin, wmax, ndiv, chopt, gridlength); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TSHAPE_DEFINITIONNONVIRT
+#define ROOT_TSHAPE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTShape ( const char * name, const char * title, const char * material )\
+{\
+Type * newp = new Type (name, title, material); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TBRIK_DEFINITIONNONVIRT
+#define ROOT_TBRIK_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTBRIK ( const char * name, const char * title, const char * material, double dx, double dy, double dz )\
+{\
+Type * newp = new Type (name, title, material, dx, dy, dz); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TTUBE_DEFINITIONNONVIRT
+#define ROOT_TTUBE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTTUBE ( const char * name, const char * title, const char * material, double rmin, double rmax, double dz, double aspect )\
+{\
+Type * newp = new Type (name, title, material, rmin, rmax, dz, aspect); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPCON_DEFINITIONNONVIRT
+#define ROOT_TPCON_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPCON ( const char * name, const char * title, const char * material, double phi1, double dphi1, int  nz )\
+{\
+Type * newp = new Type (name, title, material, phi1, dphi1, nz); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPOLYLINESHAPE_DEFINITIONNONVIRT
+#define ROOT_TPOLYLINESHAPE_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TSPHE_DEFINITIONNONVIRT
+#define ROOT_TSPHE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTSPHE ( const char * name, const char * title, const char * material, double rmin, double rmax, double themin, double themax, double phimin, double phimax )\
+{\
+Type * newp = new Type (name, title, material, rmin, rmax, themin, themax, phimin, phimax); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TXTRU_DEFINITIONNONVIRT
+#define ROOT_TXTRU_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTXTRU ( const char * name, const char * title, const char * material, int  nyx, int  nz )\
+{\
+Type * newp = new Type (name, title, material, nyx, nz); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TBOX_DEFINITIONNONVIRT
+#define ROOT_TBOX_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTBox ( double x1, double y1, double x2, double y2 )\
+{\
+Type * newp = new Type (x1, y1, x2, y2); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVE_DEFINITIONNONVIRT
+#define ROOT_TPAVE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPave ( double x1, double y1, double x2, double y2, int  bordersize, const char * br )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, bordersize, br); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVETEXT_DEFINITIONNONVIRT
+#define ROOT_TPAVETEXT_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPaveText ( double x1, double y1, double x2, double y2, const char * br )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, br); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TDIAMOND_DEFINITIONNONVIRT
+#define ROOT_TDIAMOND_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTDiamond ( double x1, double y1, double x2, double y2 )\
+{\
+Type * newp = new Type (x1, y1, x2, y2); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVESTATS_DEFINITIONNONVIRT
+#define ROOT_TPAVESTATS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPaveStats ( double x1, double y1, double x2, double y2, const char * br )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, br); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVESTEXT_DEFINITIONNONVIRT
+#define ROOT_TPAVESTEXT_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPavesText ( double x1, double y1, double x2, double y2, int  npaves, const char * br )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, npaves, br); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TLEGEND_DEFINITIONNONVIRT
+#define ROOT_TLEGEND_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTLegend ( double x1, double y1, double x2, double y2, const char * header, const char * option )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, header, option); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVELABEL_DEFINITIONNONVIRT
+#define ROOT_TPAVELABEL_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPaveLabel ( double x1, double y1, double x2, double y2, const char * label, const char * option )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, label, option); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TPAVECLASS_DEFINITIONNONVIRT
+#define ROOT_TPAVECLASS_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TWBOX_DEFINITIONNONVIRT
+#define ROOT_TWBOX_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTWbox ( double x1, double y1, double x2, double y2, int  color, int  bordersize, int  bordermode )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, color, bordersize, bordermode); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TFRAME_DEFINITIONNONVIRT
+#define ROOT_TFRAME_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTFrame ( double x1, double y1, double x2, double y2 )\
+{\
+Type * newp = new Type (x1, y1, x2, y2); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TSLIDERBOX_DEFINITIONNONVIRT
+#define ROOT_TSLIDERBOX_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTSliderBox ( double x1, double y1, double x2, double y2, int  color, int  bordersize, int  bordermode )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, color, bordersize, bordermode); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TTREE_DEFINITIONNONVIRT
+#define ROOT_TTREE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTTree ( const char * name, const char * title, int  splitlevel )\
+{\
+Type * newp = new Type (name, title, splitlevel); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TCHAIN_DEFINITIONNONVIRT
+#define ROOT_TCHAIN_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTChain ( const char * name, const char * title )\
+{\
+Type * newp = new Type (name, title); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TNTUPLE_DEFINITIONNONVIRT
+#define ROOT_TNTUPLE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTNtuple ( const char * name, const char * title, const char * varlist, int  bufsize )\
+{\
+Type * newp = new Type (name, title, varlist, bufsize); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TNTUPLED_DEFINITIONNONVIRT
+#define ROOT_TNTUPLED_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTNtupleD ( const char * name, const char * title, const char * varlist, int  bufsize )\
+{\
+Type * newp = new Type (name, title, varlist, bufsize); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TTREESQL_DEFINITIONNONVIRT
+#define ROOT_TTREESQL_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TPOLYLINE_DEFINITIONNONVIRT
+#define ROOT_TPOLYLINE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTPolyLine ( int  n, double * x, double * y, const char * option )\
+{\
+Type * newp = new Type (n, x, y, option); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TCURLYLINE_DEFINITIONNONVIRT
+#define ROOT_TCURLYLINE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTCurlyLine ( double x1, double y1, double x2, double y2, double wl, double amp )\
+{\
+Type * newp = new Type (x1, y1, x2, y2, wl, amp); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TCURLYARC_DEFINITIONNONVIRT
+#define ROOT_TCURLYARC_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTCurlyArc ( double x1, double y1, double rad, double phimin, double phimax, double wl, double amp )\
+{\
+Type * newp = new Type (x1, y1, rad, phimin, phimax, wl, amp); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TEFFICIENCY_DEFINITIONNONVIRT
+#define ROOT_TEFFICIENCY_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TAXIS_DEFINITIONNONVIRT
+#define ROOT_TAXIS_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TLATEX_DEFINITIONNONVIRT
+#define ROOT_TLATEX_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTLatex ( double x, double y, const char * text )\
+{\
+Type * newp = new Type (x, y, text); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+Type ## _p Type ## _tLatexDrawLatex ( Type ## _p p, double x, double y, const char * text )\
+{\
+return to_nonconst<Type ## _t, Type>((Type *)to_nonconst<Type,Type ## _t>(p)->DrawLatex(x, y, text)) ;\
+}\
+
+
+#undef ROOT_TTEXT_DEFINITIONNONVIRT
+#define ROOT_TTEXT_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TDIRECTORY_DEFINITIONNONVIRT
+#define ROOT_TDIRECTORY_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TDIRECTORYFILE_DEFINITIONNONVIRT
+#define ROOT_TDIRECTORYFILE_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TFILE_DEFINITIONNONVIRT
+#define ROOT_TFILE_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTFile ( const char * fname, const char * option, const char * ftitle, int  compress )\
+{\
+Type * newp = new Type (fname, option, ftitle, compress); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TBRANCH_DEFINITIONNONVIRT
+#define ROOT_TBRANCH_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TVIRTUALTREEPLAYER_DEFINITIONNONVIRT
+#define ROOT_TVIRTUALTREEPLAYER_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TTREEPLAYER_DEFINITIONNONVIRT
+#define ROOT_TTREEPLAYER_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAY_DEFINITIONNONVIRT
+#define ROOT_TARRAY_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYC_DEFINITIONNONVIRT
+#define ROOT_TARRAYC_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYD_DEFINITIONNONVIRT
+#define ROOT_TARRAYD_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYF_DEFINITIONNONVIRT
+#define ROOT_TARRAYF_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYI_DEFINITIONNONVIRT
+#define ROOT_TARRAYI_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYL_DEFINITIONNONVIRT
+#define ROOT_TARRAYL_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYL64_DEFINITIONNONVIRT
+#define ROOT_TARRAYL64_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TARRAYS_DEFINITIONNONVIRT
+#define ROOT_TARRAYS_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH1_DEFINITIONNONVIRT
+#define ROOT_TH1_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2_DEFINITIONNONVIRT
+#define ROOT_TH2_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3_DEFINITIONNONVIRT
+#define ROOT_TH3_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH1C_DEFINITIONNONVIRT
+#define ROOT_TH1C_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH1D_DEFINITIONNONVIRT
+#define ROOT_TH1D_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH1F_DEFINITIONNONVIRT
+#define ROOT_TH1F_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTH1F ( const char * name, const char * title, int  nbinsx, double xlow, double xup )\
+{\
+Type * newp = new Type (name, title, nbinsx, xlow, xup); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TH1I_DEFINITIONNONVIRT
+#define ROOT_TH1I_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH1S_DEFINITIONNONVIRT
+#define ROOT_TH1S_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2C_DEFINITIONNONVIRT
+#define ROOT_TH2C_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2D_DEFINITIONNONVIRT
+#define ROOT_TH2D_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2F_DEFINITIONNONVIRT
+#define ROOT_TH2F_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTH2F ( const char * name, const char * title, int  nbinsx, double xlow, double xup, int  nbinsy, double ylow, double yup )\
+{\
+Type * newp = new Type (name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TH2I_DEFINITIONNONVIRT
+#define ROOT_TH2I_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2POLY_DEFINITIONNONVIRT
+#define ROOT_TH2POLY_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH2S_DEFINITIONNONVIRT
+#define ROOT_TH2S_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3C_DEFINITIONNONVIRT
+#define ROOT_TH3C_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3D_DEFINITIONNONVIRT
+#define ROOT_TH3D_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3F_DEFINITIONNONVIRT
+#define ROOT_TH3F_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3I_DEFINITIONNONVIRT
+#define ROOT_TH3I_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TH3S_DEFINITIONNONVIRT
+#define ROOT_TH3S_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TQOBJECT_DEFINITIONNONVIRT
+#define ROOT_TQOBJECT_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TVIRTUALPAD_DEFINITIONNONVIRT
+#define ROOT_TVIRTUALPAD_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TPAD_DEFINITIONNONVIRT
+#define ROOT_TPAD_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TBUTTON_DEFINITIONNONVIRT
+#define ROOT_TBUTTON_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TGROUPBUTTON_DEFINITIONNONVIRT
+#define ROOT_TGROUPBUTTON_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TCANVAS_DEFINITIONNONVIRT
+#define ROOT_TCANVAS_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTCanvas ( const char * name, const char * title, int  ww, int  wh )\
+{\
+Type * newp = new Type (name, title, ww, wh); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+#undef ROOT_TDIALOGCANVAS_DEFINITIONNONVIRT
+#define ROOT_TDIALOGCANVAS_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TINSPECTCANVAS_DEFINITIONNONVIRT
+#define ROOT_TINSPECTCANVAS_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TEVEPAD_DEFINITIONNONVIRT
+#define ROOT_TEVEPAD_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TSLIDER_DEFINITIONNONVIRT
+#define ROOT_TSLIDER_DEFINITIONNONVIRT(Type)\
+
+
+#undef ROOT_TAPPLICATION_DEFINITIONNONVIRT
+#define ROOT_TAPPLICATION_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTApplication ( const char * appClassName, int * argc, char ** argv )\
+{\
+Type * newp = new Type (appClassName, argc, argv); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}
+
+#undef ROOT_TRINT_DEFINITIONNONVIRT
+#define ROOT_TRINT_DEFINITIONNONVIRT(Type)\
+Type ## _p Type ## _newTRint ( const char * appClassName, int * argc, char ** argv )\
+{\
+Type * newp = new Type (appClassName, argc, argv); \
+return to_nonconst<Type ## _t, Type >(newp);\
+}\
+
+
+ROOT_TAPPLICATION_DEFINITIONVIRT(TRint)
+ROOT_TAPPLICATION_DEFINITIONVIRT(TApplication)
+ROOT_TARC_DEFINITIONVIRT(TArc)
+ROOT_TARRAY_DEFINITIONVIRT(TH3S)
+ROOT_TARRAY_DEFINITIONVIRT(TH3I)
+ROOT_TARRAY_DEFINITIONVIRT(TH3F)
+ROOT_TARRAY_DEFINITIONVIRT(TH3D)
+ROOT_TARRAY_DEFINITIONVIRT(TH3C)
+ROOT_TARRAY_DEFINITIONVIRT(TH2S)
+ROOT_TARRAY_DEFINITIONVIRT(TH2I)
+ROOT_TARRAY_DEFINITIONVIRT(TH2F)
+ROOT_TARRAY_DEFINITIONVIRT(TH2D)
+ROOT_TARRAY_DEFINITIONVIRT(TH2C)
+ROOT_TARRAY_DEFINITIONVIRT(TH1S)
+ROOT_TARRAY_DEFINITIONVIRT(TH1I)
+ROOT_TARRAY_DEFINITIONVIRT(TH1F)
+ROOT_TARRAY_DEFINITIONVIRT(TH1D)
+ROOT_TARRAY_DEFINITIONVIRT(TH1C)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayS)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayL64)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayL)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayI)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayF)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayD)
+ROOT_TARRAY_DEFINITIONVIRT(TArrayC)
+ROOT_TARRAY_DEFINITIONVIRT(TArray)
+ROOT_TARRAYC_DEFINITIONVIRT(TH3C)
+ROOT_TARRAYC_DEFINITIONVIRT(TH2C)
+ROOT_TARRAYC_DEFINITIONVIRT(TH1C)
+ROOT_TARRAYC_DEFINITIONVIRT(TArrayC)
+ROOT_TARRAYD_DEFINITIONVIRT(TH3D)
+ROOT_TARRAYD_DEFINITIONVIRT(TH2D)
+ROOT_TARRAYD_DEFINITIONVIRT(TH1D)
+ROOT_TARRAYD_DEFINITIONVIRT(TArrayD)
+ROOT_TARRAYF_DEFINITIONVIRT(TH3F)
+ROOT_TARRAYF_DEFINITIONVIRT(TH2F)
+ROOT_TARRAYF_DEFINITIONVIRT(TH1F)
+ROOT_TARRAYF_DEFINITIONVIRT(TArrayF)
+ROOT_TARRAYI_DEFINITIONVIRT(TH3I)
+ROOT_TARRAYI_DEFINITIONVIRT(TH2I)
+ROOT_TARRAYI_DEFINITIONVIRT(TH1I)
+ROOT_TARRAYI_DEFINITIONVIRT(TArrayI)
+ROOT_TARRAYL_DEFINITIONVIRT(TArrayL)
+ROOT_TARRAYL64_DEFINITIONVIRT(TArrayL64)
+ROOT_TARRAYS_DEFINITIONVIRT(TH3S)
+ROOT_TARRAYS_DEFINITIONVIRT(TH2S)
+ROOT_TARRAYS_DEFINITIONVIRT(TH1S)
+ROOT_TARRAYS_DEFINITIONVIRT(TArrayS)
+ROOT_TARROW_DEFINITIONVIRT(TArrow)
+ROOT_TATT3D_DEFINITIONVIRT(TH3S)
+ROOT_TATT3D_DEFINITIONVIRT(TH3I)
+ROOT_TATT3D_DEFINITIONVIRT(TH3F)
+ROOT_TATT3D_DEFINITIONVIRT(TH3D)
+ROOT_TATT3D_DEFINITIONVIRT(TH3C)
+ROOT_TATT3D_DEFINITIONVIRT(TH3)
+ROOT_TATT3D_DEFINITIONVIRT(TXTRU)
+ROOT_TATT3D_DEFINITIONVIRT(TSPHE)
+ROOT_TATT3D_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TATT3D_DEFINITIONVIRT(TPCON)
+ROOT_TATT3D_DEFINITIONVIRT(TTUBE)
+ROOT_TATT3D_DEFINITIONVIRT(TBRIK)
+ROOT_TATT3D_DEFINITIONVIRT(TShape)
+ROOT_TATT3D_DEFINITIONVIRT(TAtt3D)
+ROOT_TATTAXIS_DEFINITIONVIRT(TAxis)
+ROOT_TATTAXIS_DEFINITIONVIRT(TAttAxis)
+ROOT_TATTBBOX_DEFINITIONVIRT(TAttBBox)
+ROOT_TATTCANVAS_DEFINITIONVIRT(TAttCanvas)
+ROOT_TATTFILL_DEFINITIONVIRT(TSlider)
+ROOT_TATTFILL_DEFINITIONVIRT(TEvePad)
+ROOT_TATTFILL_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TATTFILL_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TATTFILL_DEFINITIONVIRT(TCanvas)
+ROOT_TATTFILL_DEFINITIONVIRT(TGroupButton)
+ROOT_TATTFILL_DEFINITIONVIRT(TButton)
+ROOT_TATTFILL_DEFINITIONVIRT(TPad)
+ROOT_TATTFILL_DEFINITIONVIRT(TVirtualPad)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3S)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3I)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3F)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3D)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3C)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2S)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2Poly)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2I)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2F)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2D)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2C)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1S)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1I)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1F)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1D)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1C)
+ROOT_TATTFILL_DEFINITIONVIRT(TH3)
+ROOT_TATTFILL_DEFINITIONVIRT(TH2)
+ROOT_TATTFILL_DEFINITIONVIRT(TH1)
+ROOT_TATTFILL_DEFINITIONVIRT(TBranch)
+ROOT_TATTFILL_DEFINITIONVIRT(TEfficiency)
+ROOT_TATTFILL_DEFINITIONVIRT(TCurlyArc)
+ROOT_TATTFILL_DEFINITIONVIRT(TCurlyLine)
+ROOT_TATTFILL_DEFINITIONVIRT(TPolyLine)
+ROOT_TATTFILL_DEFINITIONVIRT(TTreeSQL)
+ROOT_TATTFILL_DEFINITIONVIRT(TNtupleD)
+ROOT_TATTFILL_DEFINITIONVIRT(TNtuple)
+ROOT_TATTFILL_DEFINITIONVIRT(TChain)
+ROOT_TATTFILL_DEFINITIONVIRT(TTree)
+ROOT_TATTFILL_DEFINITIONVIRT(TSliderBox)
+ROOT_TATTFILL_DEFINITIONVIRT(TFrame)
+ROOT_TATTFILL_DEFINITIONVIRT(TWbox)
+ROOT_TATTFILL_DEFINITIONVIRT(TPaveClass)
+ROOT_TATTFILL_DEFINITIONVIRT(TPaveLabel)
+ROOT_TATTFILL_DEFINITIONVIRT(TLegend)
+ROOT_TATTFILL_DEFINITIONVIRT(TPavesText)
+ROOT_TATTFILL_DEFINITIONVIRT(TPaveStats)
+ROOT_TATTFILL_DEFINITIONVIRT(TDiamond)
+ROOT_TATTFILL_DEFINITIONVIRT(TPaveText)
+ROOT_TATTFILL_DEFINITIONVIRT(TPave)
+ROOT_TATTFILL_DEFINITIONVIRT(TBox)
+ROOT_TATTFILL_DEFINITIONVIRT(TXTRU)
+ROOT_TATTFILL_DEFINITIONVIRT(TSPHE)
+ROOT_TATTFILL_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TATTFILL_DEFINITIONVIRT(TPCON)
+ROOT_TATTFILL_DEFINITIONVIRT(TTUBE)
+ROOT_TATTFILL_DEFINITIONVIRT(TBRIK)
+ROOT_TATTFILL_DEFINITIONVIRT(TShape)
+ROOT_TATTFILL_DEFINITIONVIRT(TArrow)
+ROOT_TATTFILL_DEFINITIONVIRT(TCrown)
+ROOT_TATTFILL_DEFINITIONVIRT(TArc)
+ROOT_TATTFILL_DEFINITIONVIRT(TEllipse)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraphQQ)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraphPolar)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraphErrors)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TATTFILL_DEFINITIONVIRT(TCutG)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TATTFILL_DEFINITIONVIRT(TGraph)
+ROOT_TATTFILL_DEFINITIONVIRT(TF1)
+ROOT_TATTFILL_DEFINITIONVIRT(TAttFill)
+ROOT_TATTIMAGE_DEFINITIONVIRT(TAttImage)
+ROOT_TATTLINE_DEFINITIONVIRT(TSlider)
+ROOT_TATTLINE_DEFINITIONVIRT(TEvePad)
+ROOT_TATTLINE_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TATTLINE_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TATTLINE_DEFINITIONVIRT(TCanvas)
+ROOT_TATTLINE_DEFINITIONVIRT(TGroupButton)
+ROOT_TATTLINE_DEFINITIONVIRT(TButton)
+ROOT_TATTLINE_DEFINITIONVIRT(TPad)
+ROOT_TATTLINE_DEFINITIONVIRT(TVirtualPad)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3S)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3I)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3F)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3D)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3C)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2S)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2Poly)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2I)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2F)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2D)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2C)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1S)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1I)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1F)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1D)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1C)
+ROOT_TATTLINE_DEFINITIONVIRT(TH3)
+ROOT_TATTLINE_DEFINITIONVIRT(TH2)
+ROOT_TATTLINE_DEFINITIONVIRT(TH1)
+ROOT_TATTLINE_DEFINITIONVIRT(TLatex)
+ROOT_TATTLINE_DEFINITIONVIRT(TEfficiency)
+ROOT_TATTLINE_DEFINITIONVIRT(TCurlyArc)
+ROOT_TATTLINE_DEFINITIONVIRT(TCurlyLine)
+ROOT_TATTLINE_DEFINITIONVIRT(TPolyLine)
+ROOT_TATTLINE_DEFINITIONVIRT(TTreeSQL)
+ROOT_TATTLINE_DEFINITIONVIRT(TNtupleD)
+ROOT_TATTLINE_DEFINITIONVIRT(TNtuple)
+ROOT_TATTLINE_DEFINITIONVIRT(TChain)
+ROOT_TATTLINE_DEFINITIONVIRT(TTree)
+ROOT_TATTLINE_DEFINITIONVIRT(TSliderBox)
+ROOT_TATTLINE_DEFINITIONVIRT(TFrame)
+ROOT_TATTLINE_DEFINITIONVIRT(TWbox)
+ROOT_TATTLINE_DEFINITIONVIRT(TPaveClass)
+ROOT_TATTLINE_DEFINITIONVIRT(TPaveLabel)
+ROOT_TATTLINE_DEFINITIONVIRT(TLegend)
+ROOT_TATTLINE_DEFINITIONVIRT(TPavesText)
+ROOT_TATTLINE_DEFINITIONVIRT(TPaveStats)
+ROOT_TATTLINE_DEFINITIONVIRT(TDiamond)
+ROOT_TATTLINE_DEFINITIONVIRT(TPaveText)
+ROOT_TATTLINE_DEFINITIONVIRT(TPave)
+ROOT_TATTLINE_DEFINITIONVIRT(TBox)
+ROOT_TATTLINE_DEFINITIONVIRT(TXTRU)
+ROOT_TATTLINE_DEFINITIONVIRT(TSPHE)
+ROOT_TATTLINE_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TATTLINE_DEFINITIONVIRT(TPCON)
+ROOT_TATTLINE_DEFINITIONVIRT(TTUBE)
+ROOT_TATTLINE_DEFINITIONVIRT(TBRIK)
+ROOT_TATTLINE_DEFINITIONVIRT(TShape)
+ROOT_TATTLINE_DEFINITIONVIRT(TGaxis)
+ROOT_TATTLINE_DEFINITIONVIRT(TArrow)
+ROOT_TATTLINE_DEFINITIONVIRT(TLine)
+ROOT_TATTLINE_DEFINITIONVIRT(TCrown)
+ROOT_TATTLINE_DEFINITIONVIRT(TArc)
+ROOT_TATTLINE_DEFINITIONVIRT(TEllipse)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraphQQ)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraphPolar)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraphErrors)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TATTLINE_DEFINITIONVIRT(TCutG)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TATTLINE_DEFINITIONVIRT(TGraph)
+ROOT_TATTLINE_DEFINITIONVIRT(TF1)
+ROOT_TATTLINE_DEFINITIONVIRT(TAttLine)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3S)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3I)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3F)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3D)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3C)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2S)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2Poly)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2I)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2F)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2D)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2C)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1S)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1I)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1F)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1D)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1C)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH3)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH2)
+ROOT_TATTMARKER_DEFINITIONVIRT(TH1)
+ROOT_TATTMARKER_DEFINITIONVIRT(TEfficiency)
+ROOT_TATTMARKER_DEFINITIONVIRT(TTreeSQL)
+ROOT_TATTMARKER_DEFINITIONVIRT(TNtupleD)
+ROOT_TATTMARKER_DEFINITIONVIRT(TNtuple)
+ROOT_TATTMARKER_DEFINITIONVIRT(TChain)
+ROOT_TATTMARKER_DEFINITIONVIRT(TTree)
+ROOT_TATTMARKER_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraphQQ)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraphPolar)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraphErrors)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TATTMARKER_DEFINITIONVIRT(TCutG)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TATTMARKER_DEFINITIONVIRT(TGraph)
+ROOT_TATTMARKER_DEFINITIONVIRT(TAttMarker)
+ROOT_TATTPAD_DEFINITIONVIRT(TSlider)
+ROOT_TATTPAD_DEFINITIONVIRT(TEvePad)
+ROOT_TATTPAD_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TATTPAD_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TATTPAD_DEFINITIONVIRT(TCanvas)
+ROOT_TATTPAD_DEFINITIONVIRT(TGroupButton)
+ROOT_TATTPAD_DEFINITIONVIRT(TButton)
+ROOT_TATTPAD_DEFINITIONVIRT(TPad)
+ROOT_TATTPAD_DEFINITIONVIRT(TVirtualPad)
+ROOT_TATTPAD_DEFINITIONVIRT(TAttPad)
+ROOT_TATTPARTICLE_DEFINITIONVIRT(TAttParticle)
+ROOT_TATTTEXT_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TATTTEXT_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TATTTEXT_DEFINITIONVIRT(TGroupButton)
+ROOT_TATTTEXT_DEFINITIONVIRT(TButton)
+ROOT_TATTTEXT_DEFINITIONVIRT(TText)
+ROOT_TATTTEXT_DEFINITIONVIRT(TLatex)
+ROOT_TATTTEXT_DEFINITIONVIRT(TPaveClass)
+ROOT_TATTTEXT_DEFINITIONVIRT(TPaveLabel)
+ROOT_TATTTEXT_DEFINITIONVIRT(TLegend)
+ROOT_TATTTEXT_DEFINITIONVIRT(TPavesText)
+ROOT_TATTTEXT_DEFINITIONVIRT(TPaveStats)
+ROOT_TATTTEXT_DEFINITIONVIRT(TDiamond)
+ROOT_TATTTEXT_DEFINITIONVIRT(TPaveText)
+ROOT_TATTTEXT_DEFINITIONVIRT(TGaxis)
+ROOT_TATTTEXT_DEFINITIONVIRT(TAttText)
+ROOT_TAXIS_DEFINITIONVIRT(TAxis)
+ROOT_TBRIK_DEFINITIONVIRT(TBRIK)
+ROOT_TBOX_DEFINITIONVIRT(TSliderBox)
+ROOT_TBOX_DEFINITIONVIRT(TFrame)
+ROOT_TBOX_DEFINITIONVIRT(TWbox)
+ROOT_TBOX_DEFINITIONVIRT(TPaveClass)
+ROOT_TBOX_DEFINITIONVIRT(TPaveLabel)
+ROOT_TBOX_DEFINITIONVIRT(TLegend)
+ROOT_TBOX_DEFINITIONVIRT(TPavesText)
+ROOT_TBOX_DEFINITIONVIRT(TPaveStats)
+ROOT_TBOX_DEFINITIONVIRT(TDiamond)
+ROOT_TBOX_DEFINITIONVIRT(TPaveText)
+ROOT_TBOX_DEFINITIONVIRT(TPave)
+ROOT_TBOX_DEFINITIONVIRT(TBox)
+ROOT_TBRANCH_DEFINITIONVIRT(TBranch)
+ROOT_TBUTTON_DEFINITIONVIRT(TGroupButton)
+ROOT_TBUTTON_DEFINITIONVIRT(TButton)
+ROOT_TCANVAS_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TCANVAS_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TCANVAS_DEFINITIONVIRT(TCanvas)
+ROOT_TCHAIN_DEFINITIONVIRT(TChain)
+ROOT_TCROWN_DEFINITIONVIRT(TCrown)
+ROOT_TCURLYARC_DEFINITIONVIRT(TCurlyArc)
+ROOT_TCURLYLINE_DEFINITIONVIRT(TCurlyArc)
+ROOT_TCURLYLINE_DEFINITIONVIRT(TCurlyLine)
+ROOT_TCUTG_DEFINITIONVIRT(TCutG)
+ROOT_TDIALOGCANVAS_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TDIAMOND_DEFINITIONVIRT(TDiamond)
+ROOT_TDIRECTORY_DEFINITIONVIRT(TFile)
+ROOT_TDIRECTORY_DEFINITIONVIRT(TDirectoryFile)
+ROOT_TDIRECTORY_DEFINITIONVIRT(TDirectory)
+ROOT_TDIRECTORYFILE_DEFINITIONVIRT(TFile)
+ROOT_TDIRECTORYFILE_DEFINITIONVIRT(TDirectoryFile)
+ROOT_TEFFICIENCY_DEFINITIONVIRT(TEfficiency)
+ROOT_TELLIPSE_DEFINITIONVIRT(TCrown)
+ROOT_TELLIPSE_DEFINITIONVIRT(TArc)
+ROOT_TELLIPSE_DEFINITIONVIRT(TEllipse)
+ROOT_TEVEPAD_DEFINITIONVIRT(TEvePad)
+ROOT_TF1_DEFINITIONVIRT(TF1)
+ROOT_TFILE_DEFINITIONVIRT(TFile)
+ROOT_TFORMULA_DEFINITIONVIRT(TF1)
+ROOT_TFORMULA_DEFINITIONVIRT(TFormula)
+ROOT_TFRAME_DEFINITIONVIRT(TFrame)
+ROOT_TGAXIS_DEFINITIONVIRT(TGaxis)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraphQQ)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraphPolar)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraphErrors)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TGRAPH_DEFINITIONVIRT(TCutG)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TGRAPH_DEFINITIONVIRT(TGraph)
+ROOT_TGRAPHASYMMERRORS_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TGRAPHBENTERRORS_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TGRAPHERRORS_DEFINITIONVIRT(TGraphPolar)
+ROOT_TGRAPHERRORS_DEFINITIONVIRT(TGraphErrors)
+ROOT_TGRAPHPOLAR_DEFINITIONVIRT(TGraphPolar)
+ROOT_TGRAPHQQ_DEFINITIONVIRT(TGraphQQ)
+ROOT_TGROUPBUTTON_DEFINITIONVIRT(TGroupButton)
+ROOT_TH1_DEFINITIONVIRT(TH3S)
+ROOT_TH1_DEFINITIONVIRT(TH3I)
+ROOT_TH1_DEFINITIONVIRT(TH3F)
+ROOT_TH1_DEFINITIONVIRT(TH3D)
+ROOT_TH1_DEFINITIONVIRT(TH3C)
+ROOT_TH1_DEFINITIONVIRT(TH2S)
+ROOT_TH1_DEFINITIONVIRT(TH2Poly)
+ROOT_TH1_DEFINITIONVIRT(TH2I)
+ROOT_TH1_DEFINITIONVIRT(TH2F)
+ROOT_TH1_DEFINITIONVIRT(TH2D)
+ROOT_TH1_DEFINITIONVIRT(TH2C)
+ROOT_TH1_DEFINITIONVIRT(TH1S)
+ROOT_TH1_DEFINITIONVIRT(TH1I)
+ROOT_TH1_DEFINITIONVIRT(TH1F)
+ROOT_TH1_DEFINITIONVIRT(TH1D)
+ROOT_TH1_DEFINITIONVIRT(TH1C)
+ROOT_TH1_DEFINITIONVIRT(TH3)
+ROOT_TH1_DEFINITIONVIRT(TH2)
+ROOT_TH1_DEFINITIONVIRT(TH1)
+ROOT_TH1C_DEFINITIONVIRT(TH1C)
+ROOT_TH1D_DEFINITIONVIRT(TH1D)
+ROOT_TH1F_DEFINITIONVIRT(TH1F)
+ROOT_TH1I_DEFINITIONVIRT(TH1I)
+ROOT_TH1S_DEFINITIONVIRT(TH1S)
+ROOT_TH2_DEFINITIONVIRT(TH2S)
+ROOT_TH2_DEFINITIONVIRT(TH2Poly)
+ROOT_TH2_DEFINITIONVIRT(TH2I)
+ROOT_TH2_DEFINITIONVIRT(TH2F)
+ROOT_TH2_DEFINITIONVIRT(TH2D)
+ROOT_TH2_DEFINITIONVIRT(TH2C)
+ROOT_TH2_DEFINITIONVIRT(TH2)
+ROOT_TH2C_DEFINITIONVIRT(TH2C)
+ROOT_TH2D_DEFINITIONVIRT(TH2D)
+ROOT_TH2F_DEFINITIONVIRT(TH2F)
+ROOT_TH2I_DEFINITIONVIRT(TH2I)
+ROOT_TH2POLY_DEFINITIONVIRT(TH2Poly)
+ROOT_TH2S_DEFINITIONVIRT(TH2S)
+ROOT_TH3_DEFINITIONVIRT(TH3S)
+ROOT_TH3_DEFINITIONVIRT(TH3I)
+ROOT_TH3_DEFINITIONVIRT(TH3F)
+ROOT_TH3_DEFINITIONVIRT(TH3D)
+ROOT_TH3_DEFINITIONVIRT(TH3C)
+ROOT_TH3_DEFINITIONVIRT(TH3)
+ROOT_TH3C_DEFINITIONVIRT(TH3C)
+ROOT_TH3D_DEFINITIONVIRT(TH3D)
+ROOT_TH3F_DEFINITIONVIRT(TH3F)
+ROOT_TH3I_DEFINITIONVIRT(TH3I)
+ROOT_TH3S_DEFINITIONVIRT(TH3S)
+ROOT_THSTACK_DEFINITIONVIRT(THStack)
+ROOT_TINSPECTCANVAS_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TLATEX_DEFINITIONVIRT(TLatex)
+ROOT_TLEGEND_DEFINITIONVIRT(TLegend)
+ROOT_TLINE_DEFINITIONVIRT(TGaxis)
+ROOT_TLINE_DEFINITIONVIRT(TArrow)
+ROOT_TLINE_DEFINITIONVIRT(TLine)
+ROOT_TNAMED_DEFINITIONVIRT(TH3S)
+ROOT_TNAMED_DEFINITIONVIRT(TH3I)
+ROOT_TNAMED_DEFINITIONVIRT(TH3F)
+ROOT_TNAMED_DEFINITIONVIRT(TH3D)
+ROOT_TNAMED_DEFINITIONVIRT(TH3C)
+ROOT_TNAMED_DEFINITIONVIRT(TH2S)
+ROOT_TNAMED_DEFINITIONVIRT(TH2Poly)
+ROOT_TNAMED_DEFINITIONVIRT(TH2I)
+ROOT_TNAMED_DEFINITIONVIRT(TH2F)
+ROOT_TNAMED_DEFINITIONVIRT(TH2D)
+ROOT_TNAMED_DEFINITIONVIRT(TH2C)
+ROOT_TNAMED_DEFINITIONVIRT(TH1S)
+ROOT_TNAMED_DEFINITIONVIRT(TH1I)
+ROOT_TNAMED_DEFINITIONVIRT(TH1F)
+ROOT_TNAMED_DEFINITIONVIRT(TH1D)
+ROOT_TNAMED_DEFINITIONVIRT(TH1C)
+ROOT_TNAMED_DEFINITIONVIRT(TH3)
+ROOT_TNAMED_DEFINITIONVIRT(TH2)
+ROOT_TNAMED_DEFINITIONVIRT(TH1)
+ROOT_TNAMED_DEFINITIONVIRT(TBranch)
+ROOT_TNAMED_DEFINITIONVIRT(TFile)
+ROOT_TNAMED_DEFINITIONVIRT(TDirectoryFile)
+ROOT_TNAMED_DEFINITIONVIRT(TDirectory)
+ROOT_TNAMED_DEFINITIONVIRT(TText)
+ROOT_TNAMED_DEFINITIONVIRT(TLatex)
+ROOT_TNAMED_DEFINITIONVIRT(TAxis)
+ROOT_TNAMED_DEFINITIONVIRT(TEfficiency)
+ROOT_TNAMED_DEFINITIONVIRT(TTreeSQL)
+ROOT_TNAMED_DEFINITIONVIRT(TNtupleD)
+ROOT_TNAMED_DEFINITIONVIRT(TNtuple)
+ROOT_TNAMED_DEFINITIONVIRT(TChain)
+ROOT_TNAMED_DEFINITIONVIRT(TTree)
+ROOT_TNAMED_DEFINITIONVIRT(TXTRU)
+ROOT_TNAMED_DEFINITIONVIRT(TSPHE)
+ROOT_TNAMED_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TNAMED_DEFINITIONVIRT(TPCON)
+ROOT_TNAMED_DEFINITIONVIRT(TTUBE)
+ROOT_TNAMED_DEFINITIONVIRT(TBRIK)
+ROOT_TNAMED_DEFINITIONVIRT(TShape)
+ROOT_TNAMED_DEFINITIONVIRT(TGraphQQ)
+ROOT_TNAMED_DEFINITIONVIRT(TGraphPolar)
+ROOT_TNAMED_DEFINITIONVIRT(TGraphErrors)
+ROOT_TNAMED_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TNAMED_DEFINITIONVIRT(TCutG)
+ROOT_TNAMED_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TNAMED_DEFINITIONVIRT(TGraph)
+ROOT_TNAMED_DEFINITIONVIRT(THStack)
+ROOT_TNAMED_DEFINITIONVIRT(TAttParticle)
+ROOT_TNAMED_DEFINITIONVIRT(TNamed)
+ROOT_TNTUPLE_DEFINITIONVIRT(TNtuple)
+ROOT_TNTUPLED_DEFINITIONVIRT(TNtupleD)
+ROOT_TOBJECT_DEFINITIONVIRT(TRint)
+ROOT_TOBJECT_DEFINITIONVIRT(TApplication)
+ROOT_TOBJECT_DEFINITIONVIRT(TSlider)
+ROOT_TOBJECT_DEFINITIONVIRT(TEvePad)
+ROOT_TOBJECT_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TOBJECT_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TOBJECT_DEFINITIONVIRT(TCanvas)
+ROOT_TOBJECT_DEFINITIONVIRT(TGroupButton)
+ROOT_TOBJECT_DEFINITIONVIRT(TButton)
+ROOT_TOBJECT_DEFINITIONVIRT(TPad)
+ROOT_TOBJECT_DEFINITIONVIRT(TVirtualPad)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3S)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3I)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3F)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3D)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3C)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2S)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2Poly)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2I)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2F)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2D)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2C)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1S)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1I)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1F)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1D)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1C)
+ROOT_TOBJECT_DEFINITIONVIRT(TH3)
+ROOT_TOBJECT_DEFINITIONVIRT(TH2)
+ROOT_TOBJECT_DEFINITIONVIRT(TH1)
+ROOT_TOBJECT_DEFINITIONVIRT(TTreePlayer)
+ROOT_TOBJECT_DEFINITIONVIRT(TVirtualTreePlayer)
+ROOT_TOBJECT_DEFINITIONVIRT(TBranch)
+ROOT_TOBJECT_DEFINITIONVIRT(TFile)
+ROOT_TOBJECT_DEFINITIONVIRT(TDirectoryFile)
+ROOT_TOBJECT_DEFINITIONVIRT(TDirectory)
+ROOT_TOBJECT_DEFINITIONVIRT(TText)
+ROOT_TOBJECT_DEFINITIONVIRT(TLatex)
+ROOT_TOBJECT_DEFINITIONVIRT(TAxis)
+ROOT_TOBJECT_DEFINITIONVIRT(TEfficiency)
+ROOT_TOBJECT_DEFINITIONVIRT(TCurlyArc)
+ROOT_TOBJECT_DEFINITIONVIRT(TCurlyLine)
+ROOT_TOBJECT_DEFINITIONVIRT(TPolyLine)
+ROOT_TOBJECT_DEFINITIONVIRT(TTreeSQL)
+ROOT_TOBJECT_DEFINITIONVIRT(TNtupleD)
+ROOT_TOBJECT_DEFINITIONVIRT(TNtuple)
+ROOT_TOBJECT_DEFINITIONVIRT(TChain)
+ROOT_TOBJECT_DEFINITIONVIRT(TTree)
+ROOT_TOBJECT_DEFINITIONVIRT(TSliderBox)
+ROOT_TOBJECT_DEFINITIONVIRT(TFrame)
+ROOT_TOBJECT_DEFINITIONVIRT(TWbox)
+ROOT_TOBJECT_DEFINITIONVIRT(TPaveClass)
+ROOT_TOBJECT_DEFINITIONVIRT(TPaveLabel)
+ROOT_TOBJECT_DEFINITIONVIRT(TLegend)
+ROOT_TOBJECT_DEFINITIONVIRT(TPavesText)
+ROOT_TOBJECT_DEFINITIONVIRT(TPaveStats)
+ROOT_TOBJECT_DEFINITIONVIRT(TDiamond)
+ROOT_TOBJECT_DEFINITIONVIRT(TPaveText)
+ROOT_TOBJECT_DEFINITIONVIRT(TPave)
+ROOT_TOBJECT_DEFINITIONVIRT(TBox)
+ROOT_TOBJECT_DEFINITIONVIRT(TXTRU)
+ROOT_TOBJECT_DEFINITIONVIRT(TSPHE)
+ROOT_TOBJECT_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TOBJECT_DEFINITIONVIRT(TPCON)
+ROOT_TOBJECT_DEFINITIONVIRT(TTUBE)
+ROOT_TOBJECT_DEFINITIONVIRT(TBRIK)
+ROOT_TOBJECT_DEFINITIONVIRT(TShape)
+ROOT_TOBJECT_DEFINITIONVIRT(TGaxis)
+ROOT_TOBJECT_DEFINITIONVIRT(TArrow)
+ROOT_TOBJECT_DEFINITIONVIRT(TLine)
+ROOT_TOBJECT_DEFINITIONVIRT(TCrown)
+ROOT_TOBJECT_DEFINITIONVIRT(TArc)
+ROOT_TOBJECT_DEFINITIONVIRT(TEllipse)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraphQQ)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraphPolar)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraphErrors)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraphBentErrors)
+ROOT_TOBJECT_DEFINITIONVIRT(TCutG)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraphAsymmErrors)
+ROOT_TOBJECT_DEFINITIONVIRT(TGraph)
+ROOT_TOBJECT_DEFINITIONVIRT(THStack)
+ROOT_TOBJECT_DEFINITIONVIRT(TAttParticle)
+ROOT_TOBJECT_DEFINITIONVIRT(TNamed)
+ROOT_TOBJECT_DEFINITIONVIRT(TObject)
+ROOT_TPCON_DEFINITIONVIRT(TPCON)
+ROOT_TPAD_DEFINITIONVIRT(TSlider)
+ROOT_TPAD_DEFINITIONVIRT(TEvePad)
+ROOT_TPAD_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TPAD_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TPAD_DEFINITIONVIRT(TCanvas)
+ROOT_TPAD_DEFINITIONVIRT(TGroupButton)
+ROOT_TPAD_DEFINITIONVIRT(TButton)
+ROOT_TPAD_DEFINITIONVIRT(TPad)
+ROOT_TPAVE_DEFINITIONVIRT(TPaveClass)
+ROOT_TPAVE_DEFINITIONVIRT(TPaveLabel)
+ROOT_TPAVE_DEFINITIONVIRT(TLegend)
+ROOT_TPAVE_DEFINITIONVIRT(TPavesText)
+ROOT_TPAVE_DEFINITIONVIRT(TPaveStats)
+ROOT_TPAVE_DEFINITIONVIRT(TDiamond)
+ROOT_TPAVE_DEFINITIONVIRT(TPaveText)
+ROOT_TPAVE_DEFINITIONVIRT(TPave)
+ROOT_TPAVECLASS_DEFINITIONVIRT(TPaveClass)
+ROOT_TPAVELABEL_DEFINITIONVIRT(TPaveClass)
+ROOT_TPAVELABEL_DEFINITIONVIRT(TPaveLabel)
+ROOT_TPAVESTATS_DEFINITIONVIRT(TPaveStats)
+ROOT_TPAVETEXT_DEFINITIONVIRT(TPavesText)
+ROOT_TPAVETEXT_DEFINITIONVIRT(TPaveStats)
+ROOT_TPAVETEXT_DEFINITIONVIRT(TDiamond)
+ROOT_TPAVETEXT_DEFINITIONVIRT(TPaveText)
+ROOT_TPAVESTEXT_DEFINITIONVIRT(TPavesText)
+ROOT_TPOLYLINE_DEFINITIONVIRT(TCurlyArc)
+ROOT_TPOLYLINE_DEFINITIONVIRT(TCurlyLine)
+ROOT_TPOLYLINE_DEFINITIONVIRT(TPolyLine)
+ROOT_TPOLYLINESHAPE_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TQOBJECT_DEFINITIONVIRT(TRint)
+ROOT_TQOBJECT_DEFINITIONVIRT(TApplication)
+ROOT_TQOBJECT_DEFINITIONVIRT(TSlider)
+ROOT_TQOBJECT_DEFINITIONVIRT(TEvePad)
+ROOT_TQOBJECT_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TQOBJECT_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TQOBJECT_DEFINITIONVIRT(TCanvas)
+ROOT_TQOBJECT_DEFINITIONVIRT(TGroupButton)
+ROOT_TQOBJECT_DEFINITIONVIRT(TButton)
+ROOT_TQOBJECT_DEFINITIONVIRT(TPad)
+ROOT_TQOBJECT_DEFINITIONVIRT(TVirtualPad)
+ROOT_TQOBJECT_DEFINITIONVIRT(TQObject)
+ROOT_TRINT_DEFINITIONVIRT(TRint)
+ROOT_TSPHE_DEFINITIONVIRT(TSPHE)
+ROOT_TSHAPE_DEFINITIONVIRT(TXTRU)
+ROOT_TSHAPE_DEFINITIONVIRT(TSPHE)
+ROOT_TSHAPE_DEFINITIONVIRT(TPolyLineShape)
+ROOT_TSHAPE_DEFINITIONVIRT(TPCON)
+ROOT_TSHAPE_DEFINITIONVIRT(TTUBE)
+ROOT_TSHAPE_DEFINITIONVIRT(TBRIK)
+ROOT_TSHAPE_DEFINITIONVIRT(TShape)
+ROOT_TSLIDER_DEFINITIONVIRT(TSlider)
+ROOT_TSLIDERBOX_DEFINITIONVIRT(TSliderBox)
+ROOT_TTUBE_DEFINITIONVIRT(TTUBE)
+ROOT_TTEXT_DEFINITIONVIRT(TText)
+ROOT_TTEXT_DEFINITIONVIRT(TLatex)
+ROOT_TTREE_DEFINITIONVIRT(TTreeSQL)
+ROOT_TTREE_DEFINITIONVIRT(TNtupleD)
+ROOT_TTREE_DEFINITIONVIRT(TNtuple)
+ROOT_TTREE_DEFINITIONVIRT(TChain)
+ROOT_TTREE_DEFINITIONVIRT(TTree)
+ROOT_TTREEPLAYER_DEFINITIONVIRT(TTreePlayer)
+ROOT_TTREESQL_DEFINITIONVIRT(TTreeSQL)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TSlider)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TEvePad)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TInspectCanvas)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TDialogCanvas)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TCanvas)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TGroupButton)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TButton)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TPad)
+ROOT_TVIRTUALPAD_DEFINITIONVIRT(TVirtualPad)
+ROOT_TVIRTUALTREEPLAYER_DEFINITIONVIRT(TTreePlayer)
+ROOT_TVIRTUALTREEPLAYER_DEFINITIONVIRT(TVirtualTreePlayer)
+ROOT_TWBOX_DEFINITIONVIRT(TSliderBox)
+ROOT_TWBOX_DEFINITIONVIRT(TFrame)
+ROOT_TWBOX_DEFINITIONVIRT(TWbox)
+ROOT_TXTRU_DEFINITIONVIRT(TXTRU)
+
+
+ROOT_TOBJECT_DEFINITIONNONVIRT(TObject)
+ROOT_TNAMED_DEFINITIONNONVIRT(TNamed)
+ROOT_TFORMULA_DEFINITIONNONVIRT(TFormula)
+ROOT_TATT3D_DEFINITIONNONVIRT(TAtt3D)
+ROOT_TATTAXIS_DEFINITIONNONVIRT(TAttAxis)
+ROOT_TATTBBOX_DEFINITIONNONVIRT(TAttBBox)
+ROOT_TATTCANVAS_DEFINITIONNONVIRT(TAttCanvas)
+ROOT_TATTFILL_DEFINITIONNONVIRT(TAttFill)
+ROOT_TATTIMAGE_DEFINITIONNONVIRT(TAttImage)
+ROOT_TATTLINE_DEFINITIONNONVIRT(TAttLine)
+ROOT_TATTMARKER_DEFINITIONNONVIRT(TAttMarker)
+ROOT_TATTPAD_DEFINITIONNONVIRT(TAttPad)
+ROOT_TATTPARTICLE_DEFINITIONNONVIRT(TAttParticle)
+ROOT_TATTTEXT_DEFINITIONNONVIRT(TAttText)
+ROOT_THSTACK_DEFINITIONNONVIRT(THStack)
+ROOT_TF1_DEFINITIONNONVIRT(TF1)
+ROOT_TGRAPH_DEFINITIONNONVIRT(TGraph)
+ROOT_TGRAPHASYMMERRORS_DEFINITIONNONVIRT(TGraphAsymmErrors)
+ROOT_TCUTG_DEFINITIONNONVIRT(TCutG)
+ROOT_TGRAPHBENTERRORS_DEFINITIONNONVIRT(TGraphBentErrors)
+ROOT_TGRAPHERRORS_DEFINITIONNONVIRT(TGraphErrors)
+ROOT_TGRAPHPOLAR_DEFINITIONNONVIRT(TGraphPolar)
+ROOT_TGRAPHQQ_DEFINITIONNONVIRT(TGraphQQ)
+ROOT_TELLIPSE_DEFINITIONNONVIRT(TEllipse)
+ROOT_TARC_DEFINITIONNONVIRT(TArc)
+ROOT_TCROWN_DEFINITIONNONVIRT(TCrown)
+ROOT_TLINE_DEFINITIONNONVIRT(TLine)
+ROOT_TARROW_DEFINITIONNONVIRT(TArrow)
+ROOT_TGAXIS_DEFINITIONNONVIRT(TGaxis)
+ROOT_TSHAPE_DEFINITIONNONVIRT(TShape)
+ROOT_TBRIK_DEFINITIONNONVIRT(TBRIK)
+ROOT_TTUBE_DEFINITIONNONVIRT(TTUBE)
+ROOT_TPCON_DEFINITIONNONVIRT(TPCON)
+ROOT_TPOLYLINESHAPE_DEFINITIONNONVIRT(TPolyLineShape)
+ROOT_TSPHE_DEFINITIONNONVIRT(TSPHE)
+ROOT_TXTRU_DEFINITIONNONVIRT(TXTRU)
+ROOT_TBOX_DEFINITIONNONVIRT(TBox)
+ROOT_TPAVE_DEFINITIONNONVIRT(TPave)
+ROOT_TPAVETEXT_DEFINITIONNONVIRT(TPaveText)
+ROOT_TDIAMOND_DEFINITIONNONVIRT(TDiamond)
+ROOT_TPAVESTATS_DEFINITIONNONVIRT(TPaveStats)
+ROOT_TPAVESTEXT_DEFINITIONNONVIRT(TPavesText)
+ROOT_TLEGEND_DEFINITIONNONVIRT(TLegend)
+ROOT_TPAVELABEL_DEFINITIONNONVIRT(TPaveLabel)
+ROOT_TPAVECLASS_DEFINITIONNONVIRT(TPaveClass)
+ROOT_TWBOX_DEFINITIONNONVIRT(TWbox)
+ROOT_TFRAME_DEFINITIONNONVIRT(TFrame)
+ROOT_TSLIDERBOX_DEFINITIONNONVIRT(TSliderBox)
+ROOT_TTREE_DEFINITIONNONVIRT(TTree)
+ROOT_TCHAIN_DEFINITIONNONVIRT(TChain)
+ROOT_TNTUPLE_DEFINITIONNONVIRT(TNtuple)
+ROOT_TNTUPLED_DEFINITIONNONVIRT(TNtupleD)
+ROOT_TTREESQL_DEFINITIONNONVIRT(TTreeSQL)
+ROOT_TPOLYLINE_DEFINITIONNONVIRT(TPolyLine)
+ROOT_TCURLYLINE_DEFINITIONNONVIRT(TCurlyLine)
+ROOT_TCURLYARC_DEFINITIONNONVIRT(TCurlyArc)
+ROOT_TEFFICIENCY_DEFINITIONNONVIRT(TEfficiency)
+ROOT_TAXIS_DEFINITIONNONVIRT(TAxis)
+ROOT_TLATEX_DEFINITIONNONVIRT(TLatex)
+ROOT_TTEXT_DEFINITIONNONVIRT(TText)
+ROOT_TDIRECTORY_DEFINITIONNONVIRT(TDirectory)
+ROOT_TDIRECTORYFILE_DEFINITIONNONVIRT(TDirectoryFile)
+ROOT_TFILE_DEFINITIONNONVIRT(TFile)
+ROOT_TBRANCH_DEFINITIONNONVIRT(TBranch)
+ROOT_TVIRTUALTREEPLAYER_DEFINITIONNONVIRT(TVirtualTreePlayer)
+ROOT_TTREEPLAYER_DEFINITIONNONVIRT(TTreePlayer)
+ROOT_TARRAY_DEFINITIONNONVIRT(TArray)
+ROOT_TARRAYC_DEFINITIONNONVIRT(TArrayC)
+ROOT_TARRAYD_DEFINITIONNONVIRT(TArrayD)
+ROOT_TARRAYF_DEFINITIONNONVIRT(TArrayF)
+ROOT_TARRAYI_DEFINITIONNONVIRT(TArrayI)
+ROOT_TARRAYL_DEFINITIONNONVIRT(TArrayL)
+ROOT_TARRAYL64_DEFINITIONNONVIRT(TArrayL64)
+ROOT_TARRAYS_DEFINITIONNONVIRT(TArrayS)
+ROOT_TH1_DEFINITIONNONVIRT(TH1)
+ROOT_TH2_DEFINITIONNONVIRT(TH2)
+ROOT_TH3_DEFINITIONNONVIRT(TH3)
+ROOT_TH1C_DEFINITIONNONVIRT(TH1C)
+ROOT_TH1D_DEFINITIONNONVIRT(TH1D)
+ROOT_TH1F_DEFINITIONNONVIRT(TH1F)
+ROOT_TH1I_DEFINITIONNONVIRT(TH1I)
+ROOT_TH1S_DEFINITIONNONVIRT(TH1S)
+ROOT_TH2C_DEFINITIONNONVIRT(TH2C)
+ROOT_TH2D_DEFINITIONNONVIRT(TH2D)
+ROOT_TH2F_DEFINITIONNONVIRT(TH2F)
+ROOT_TH2I_DEFINITIONNONVIRT(TH2I)
+ROOT_TH2POLY_DEFINITIONNONVIRT(TH2Poly)
+ROOT_TH2S_DEFINITIONNONVIRT(TH2S)
+ROOT_TH3C_DEFINITIONNONVIRT(TH3C)
+ROOT_TH3D_DEFINITIONNONVIRT(TH3D)
+ROOT_TH3F_DEFINITIONNONVIRT(TH3F)
+ROOT_TH3I_DEFINITIONNONVIRT(TH3I)
+ROOT_TH3S_DEFINITIONNONVIRT(TH3S)
+ROOT_TQOBJECT_DEFINITIONNONVIRT(TQObject)
+ROOT_TVIRTUALPAD_DEFINITIONNONVIRT(TVirtualPad)
+ROOT_TPAD_DEFINITIONNONVIRT(TPad)
+ROOT_TBUTTON_DEFINITIONNONVIRT(TButton)
+ROOT_TGROUPBUTTON_DEFINITIONNONVIRT(TGroupButton)
+ROOT_TCANVAS_DEFINITIONNONVIRT(TCanvas)
+ROOT_TDIALOGCANVAS_DEFINITIONNONVIRT(TDialogCanvas)
+ROOT_TINSPECTCANVAS_DEFINITIONNONVIRT(TInspectCanvas)
+ROOT_TEVEPAD_DEFINITIONNONVIRT(TEvePad)
+ROOT_TSLIDER_DEFINITIONNONVIRT(TSlider)
+ROOT_TAPPLICATION_DEFINITIONNONVIRT(TApplication)
+ROOT_TRINT_DEFINITIONNONVIRT(TRint)
diff --git a/csrc/HROOT.h b/csrc/HROOT.h
new file mode 100644
--- /dev/null
+++ b/csrc/HROOT.h
@@ -0,0 +1,1737 @@
+#ifdef __cplusplus
+extern "C" { 
+#endif 
+
+#undef ROOT_TYPE_DECLARATION 
+#define ROOT_TYPE_DECLARATION(Type) \
+typedef struct Type ##_tag Type ## _t; \
+typedef Type ## _t * Type ## _p; \
+typedef Type ## _t const* const_ ## Type ## _p 
+
+
+
+#undef ROOT_TOBJECT_DECLARATIONVIRT
+#define ROOT_TOBJECT_DECLARATIONVIRT(Type) \
+const char * Type ## _GetName ( Type ## _p p ); \
+void Type ## _Draw ( Type ## _p p, const char * option ); \
+void Type ## _SaveAs ( Type ## _p p, const char * filename, const char * option ); \
+int  Type ## _Write ( Type ## _p p, const char * name, int  option, int  bufsize )
+
+#undef ROOT_TNAMED_DECLARATIONVIRT
+#define ROOT_TNAMED_DECLARATIONVIRT(Type) \
+void Type ## _SetTitle ( Type ## _p p, const char * name )
+
+#undef ROOT_TFORMULA_DECLARATIONVIRT
+#define ROOT_TFORMULA_DECLARATIONVIRT(Type) \
+double Type ## _GetParameter ( Type ## _p p, int  idx ); \
+void Type ## _SetParameter ( Type ## _p p, int  idx, double value )
+
+#undef ROOT_TATT3D_DECLARATIONVIRT
+#define ROOT_TATT3D_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTAXIS_DECLARATIONVIRT
+#define ROOT_TATTAXIS_DECLARATIONVIRT(Type) \
+void Type ## _SetLabelColor ( Type ## _p p, int  color ); \
+void Type ## _SetLabelSize ( Type ## _p p, double size ); \
+void Type ## _SetTickLength ( Type ## _p p, double length ); \
+void Type ## _SetTitleOffset ( Type ## _p p, double offset ); \
+void Type ## _SetNdivisions ( Type ## _p p, int  n, int optim )
+
+#undef ROOT_TATTBBOX_DECLARATIONVIRT
+#define ROOT_TATTBBOX_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTCANVAS_DECLARATIONVIRT
+#define ROOT_TATTCANVAS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTFILL_DECLARATIONVIRT
+#define ROOT_TATTFILL_DECLARATIONVIRT(Type) \
+void Type ## _SetFillColor ( Type ## _p p, int  color ); \
+void Type ## _SetFillStyle ( Type ## _p p, int  style )
+
+#undef ROOT_TATTIMAGE_DECLARATIONVIRT
+#define ROOT_TATTIMAGE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTLINE_DECLARATIONVIRT
+#define ROOT_TATTLINE_DECLARATIONVIRT(Type) \
+void Type ## _SetLineColor ( Type ## _p p, int  color )
+
+#undef ROOT_TATTMARKER_DECLARATIONVIRT
+#define ROOT_TATTMARKER_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTPAD_DECLARATIONVIRT
+#define ROOT_TATTPAD_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTPARTICLE_DECLARATIONVIRT
+#define ROOT_TATTPARTICLE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TATTTEXT_DECLARATIONVIRT
+#define ROOT_TATTTEXT_DECLARATIONVIRT(Type) \
+void Type ## _SetTextColor ( Type ## _p p, int  tcolor ); \
+void Type ## _SetTextAlign ( Type ## _p p, int  align ); \
+void Type ## _SetTextSize ( Type ## _p p, double tsize )
+
+#undef ROOT_THSTACK_DECLARATIONVIRT
+#define ROOT_THSTACK_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TF1_DECLARATIONVIRT
+#define ROOT_TF1_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPH_DECLARATIONVIRT
+#define ROOT_TGRAPH_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPHASYMMERRORS_DECLARATIONVIRT
+#define ROOT_TGRAPHASYMMERRORS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCUTG_DECLARATIONVIRT
+#define ROOT_TCUTG_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPHBENTERRORS_DECLARATIONVIRT
+#define ROOT_TGRAPHBENTERRORS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPHERRORS_DECLARATIONVIRT
+#define ROOT_TGRAPHERRORS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPHPOLAR_DECLARATIONVIRT
+#define ROOT_TGRAPHPOLAR_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGRAPHQQ_DECLARATIONVIRT
+#define ROOT_TGRAPHQQ_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TELLIPSE_DECLARATIONVIRT
+#define ROOT_TELLIPSE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARC_DECLARATIONVIRT
+#define ROOT_TARC_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCROWN_DECLARATIONVIRT
+#define ROOT_TCROWN_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TLINE_DECLARATIONVIRT
+#define ROOT_TLINE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARROW_DECLARATIONVIRT
+#define ROOT_TARROW_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGAXIS_DECLARATIONVIRT
+#define ROOT_TGAXIS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TSHAPE_DECLARATIONVIRT
+#define ROOT_TSHAPE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TBRIK_DECLARATIONVIRT
+#define ROOT_TBRIK_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TTUBE_DECLARATIONVIRT
+#define ROOT_TTUBE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPCON_DECLARATIONVIRT
+#define ROOT_TPCON_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPOLYLINESHAPE_DECLARATIONVIRT
+#define ROOT_TPOLYLINESHAPE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TSPHE_DECLARATIONVIRT
+#define ROOT_TSPHE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TXTRU_DECLARATIONVIRT
+#define ROOT_TXTRU_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TBOX_DECLARATIONVIRT
+#define ROOT_TBOX_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVE_DECLARATIONVIRT
+#define ROOT_TPAVE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVETEXT_DECLARATIONVIRT
+#define ROOT_TPAVETEXT_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TDIAMOND_DECLARATIONVIRT
+#define ROOT_TDIAMOND_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVESTATS_DECLARATIONVIRT
+#define ROOT_TPAVESTATS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVESTEXT_DECLARATIONVIRT
+#define ROOT_TPAVESTEXT_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TLEGEND_DECLARATIONVIRT
+#define ROOT_TLEGEND_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVELABEL_DECLARATIONVIRT
+#define ROOT_TPAVELABEL_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPAVECLASS_DECLARATIONVIRT
+#define ROOT_TPAVECLASS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TWBOX_DECLARATIONVIRT
+#define ROOT_TWBOX_DECLARATIONVIRT(Type) \
+void Type ## _SetBorderMode ( Type ## _p p, int  bordermode )
+
+#undef ROOT_TFRAME_DECLARATIONVIRT
+#define ROOT_TFRAME_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TSLIDERBOX_DECLARATIONVIRT
+#define ROOT_TSLIDERBOX_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TTREE_DECLARATIONVIRT
+#define ROOT_TTREE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCHAIN_DECLARATIONVIRT
+#define ROOT_TCHAIN_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TNTUPLE_DECLARATIONVIRT
+#define ROOT_TNTUPLE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TNTUPLED_DECLARATIONVIRT
+#define ROOT_TNTUPLED_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TTREESQL_DECLARATIONVIRT
+#define ROOT_TTREESQL_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TPOLYLINE_DECLARATIONVIRT
+#define ROOT_TPOLYLINE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCURLYLINE_DECLARATIONVIRT
+#define ROOT_TCURLYLINE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCURLYARC_DECLARATIONVIRT
+#define ROOT_TCURLYARC_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TEFFICIENCY_DECLARATIONVIRT
+#define ROOT_TEFFICIENCY_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TAXIS_DECLARATIONVIRT
+#define ROOT_TAXIS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TLATEX_DECLARATIONVIRT
+#define ROOT_TLATEX_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TTEXT_DECLARATIONVIRT
+#define ROOT_TTEXT_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TDIRECTORY_DECLARATIONVIRT
+#define ROOT_TDIRECTORY_DECLARATIONVIRT(Type) \
+void Type ## _Close ( Type ## _p p, const char * option )
+
+#undef ROOT_TDIRECTORYFILE_DECLARATIONVIRT
+#define ROOT_TDIRECTORYFILE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TFILE_DECLARATIONVIRT
+#define ROOT_TFILE_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TBRANCH_DECLARATIONVIRT
+#define ROOT_TBRANCH_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TVIRTUALTREEPLAYER_DECLARATIONVIRT
+#define ROOT_TVIRTUALTREEPLAYER_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TTREEPLAYER_DECLARATIONVIRT
+#define ROOT_TTREEPLAYER_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAY_DECLARATIONVIRT
+#define ROOT_TARRAY_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYC_DECLARATIONVIRT
+#define ROOT_TARRAYC_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYD_DECLARATIONVIRT
+#define ROOT_TARRAYD_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYF_DECLARATIONVIRT
+#define ROOT_TARRAYF_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYI_DECLARATIONVIRT
+#define ROOT_TARRAYI_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYL_DECLARATIONVIRT
+#define ROOT_TARRAYL_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYL64_DECLARATIONVIRT
+#define ROOT_TARRAYL64_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TARRAYS_DECLARATIONVIRT
+#define ROOT_TARRAYS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1_DECLARATIONVIRT
+#define ROOT_TH1_DECLARATIONVIRT(Type) \
+TAxis_p Type ## _GetXaxis ( Type ## _p p ); \
+TAxis_p Type ## _GetYaxis ( Type ## _p p ); \
+TAxis_p Type ## _GetZaxis ( Type ## _p p ); \
+void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 ); \
+int  Type ## _fill1 ( Type ## _p p, double x )
+
+#undef ROOT_TH2_DECLARATIONVIRT
+#define ROOT_TH2_DECLARATIONVIRT(Type) \
+int  Type ## _fill2 ( Type ## _p p, double x, double y )
+
+#undef ROOT_TH3_DECLARATIONVIRT
+#define ROOT_TH3_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1C_DECLARATIONVIRT
+#define ROOT_TH1C_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1D_DECLARATIONVIRT
+#define ROOT_TH1D_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1F_DECLARATIONVIRT
+#define ROOT_TH1F_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1I_DECLARATIONVIRT
+#define ROOT_TH1I_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH1S_DECLARATIONVIRT
+#define ROOT_TH1S_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2C_DECLARATIONVIRT
+#define ROOT_TH2C_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2D_DECLARATIONVIRT
+#define ROOT_TH2D_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2F_DECLARATIONVIRT
+#define ROOT_TH2F_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2I_DECLARATIONVIRT
+#define ROOT_TH2I_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2POLY_DECLARATIONVIRT
+#define ROOT_TH2POLY_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH2S_DECLARATIONVIRT
+#define ROOT_TH2S_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH3C_DECLARATIONVIRT
+#define ROOT_TH3C_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH3D_DECLARATIONVIRT
+#define ROOT_TH3D_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH3F_DECLARATIONVIRT
+#define ROOT_TH3F_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH3I_DECLARATIONVIRT
+#define ROOT_TH3I_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TH3S_DECLARATIONVIRT
+#define ROOT_TH3S_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TQOBJECT_DECLARATIONVIRT
+#define ROOT_TQOBJECT_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TVIRTUALPAD_DECLARATIONVIRT
+#define ROOT_TVIRTUALPAD_DECLARATIONVIRT(Type) \
+TFrame_p Type ## _GetFrame ( Type ## _p p ); \
+void Type ## _Range ( Type ## _p p, double x1, double y1, double x2, double y2 )
+
+#undef ROOT_TPAD_DECLARATIONVIRT
+#define ROOT_TPAD_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TBUTTON_DECLARATIONVIRT
+#define ROOT_TBUTTON_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TGROUPBUTTON_DECLARATIONVIRT
+#define ROOT_TGROUPBUTTON_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TCANVAS_DECLARATIONVIRT
+#define ROOT_TCANVAS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TDIALOGCANVAS_DECLARATIONVIRT
+#define ROOT_TDIALOGCANVAS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TINSPECTCANVAS_DECLARATIONVIRT
+#define ROOT_TINSPECTCANVAS_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TEVEPAD_DECLARATIONVIRT
+#define ROOT_TEVEPAD_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TSLIDER_DECLARATIONVIRT
+#define ROOT_TSLIDER_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TAPPLICATION_DECLARATIONVIRT
+#define ROOT_TAPPLICATION_DECLARATIONVIRT(Type) \
+void Type ## _Run ( Type ## _p p, int retrn )
+
+#undef ROOT_TRINT_DECLARATIONVIRT
+#define ROOT_TRINT_DECLARATIONVIRT(Type) \
+
+
+#undef ROOT_TOBJECT_DECLARATIONNONVIRT
+#define ROOT_TOBJECT_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTObject (  ); \
+
+#undef ROOT_TNAMED_DECLARATIONNONVIRT
+#define ROOT_TNAMED_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTNamed ( const char * name, const char * title ); \
+
+#undef ROOT_TFORMULA_DECLARATIONNONVIRT
+#define ROOT_TFORMULA_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTFormula ( const char * name, const char * formula ); \
+
+#undef ROOT_TATT3D_DECLARATIONNONVIRT
+#define ROOT_TATT3D_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TATTAXIS_DECLARATIONNONVIRT
+#define ROOT_TATTAXIS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttAxis (  ); \
+
+#undef ROOT_TATTBBOX_DECLARATIONNONVIRT
+#define ROOT_TATTBBOX_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TATTCANVAS_DECLARATIONNONVIRT
+#define ROOT_TATTCANVAS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttCanvas (  ); \
+
+#undef ROOT_TATTFILL_DECLARATIONNONVIRT
+#define ROOT_TATTFILL_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttFill ( int  fcolor, int  fstyle ); \
+
+#undef ROOT_TATTIMAGE_DECLARATIONNONVIRT
+#define ROOT_TATTIMAGE_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TATTLINE_DECLARATIONNONVIRT
+#define ROOT_TATTLINE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttLine ( int  lcolor, int  lstyle, int  lwidth ); \
+
+#undef ROOT_TATTMARKER_DECLARATIONNONVIRT
+#define ROOT_TATTMARKER_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttMarker ( int  color, int  style, int  msize ); \
+
+#undef ROOT_TATTPAD_DECLARATIONNONVIRT
+#define ROOT_TATTPAD_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttPad (  ); \
+
+#undef ROOT_TATTPARTICLE_DECLARATIONNONVIRT
+#define ROOT_TATTPARTICLE_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TATTTEXT_DECLARATIONNONVIRT
+#define ROOT_TATTTEXT_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTAttText ( int  align, double angle, int  color, int  font, double tsize ); \
+
+#undef ROOT_THSTACK_DECLARATIONNONVIRT
+#define ROOT_THSTACK_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTHStack ( const char * name, const char * title ); \
+
+#undef ROOT_TF1_DECLARATIONNONVIRT
+#define ROOT_TF1_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTF1 ( const char * name, const char * formula, double xmin, double xmax ); \
+
+#undef ROOT_TGRAPH_DECLARATIONNONVIRT
+#define ROOT_TGRAPH_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraph ( int  n, double * x, double * y ); \
+
+#undef ROOT_TGRAPHASYMMERRORS_DECLARATIONNONVIRT
+#define ROOT_TGRAPHASYMMERRORS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraphAsymmErrors ( int  n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh ); \
+
+#undef ROOT_TCUTG_DECLARATIONNONVIRT
+#define ROOT_TCUTG_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTCutG ( const char * name, int  n, double * x, double * y ); \
+
+#undef ROOT_TGRAPHBENTERRORS_DECLARATIONNONVIRT
+#define ROOT_TGRAPHBENTERRORS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraphBentErrors ( int  n, double * x, double * y, double * exl, double * exh, double * eyl, double * eyh, double * exld, double * exhd, double * eyld, double * eyhd ); \
+
+#undef ROOT_TGRAPHERRORS_DECLARATIONNONVIRT
+#define ROOT_TGRAPHERRORS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraphErrors ( int  n, double * x, double * y, double * ex, double * ey ); \
+
+#undef ROOT_TGRAPHPOLAR_DECLARATIONNONVIRT
+#define ROOT_TGRAPHPOLAR_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraphPolar ( int  n, double * x, double * y, double * ex, double * ey ); \
+
+#undef ROOT_TGRAPHQQ_DECLARATIONNONVIRT
+#define ROOT_TGRAPHQQ_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGraphQQ ( int  nx, double * x, int  ny, double * y ); \
+
+#undef ROOT_TELLIPSE_DECLARATIONNONVIRT
+#define ROOT_TELLIPSE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTEllipse ( double x1, double y1, double r1, double r2, double phimin, double phimax, double theta )
+#undef ROOT_TARC_DECLARATIONNONVIRT
+#define ROOT_TARC_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTArc ( double x1, double y1, double radius, double phimin, double phimax ); \
+
+#undef ROOT_TCROWN_DECLARATIONNONVIRT
+#define ROOT_TCROWN_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTCrown ( double x1, double y1, double radin, double radout, double phimin, double phimax ); \
+
+#undef ROOT_TLINE_DECLARATIONNONVIRT
+#define ROOT_TLINE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTLine ( double x1, double y1, double x2, double y2 ); \
+
+#undef ROOT_TARROW_DECLARATIONNONVIRT
+#define ROOT_TARROW_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTArrow ( double x1, double y1, double x2, double y2, double arrowsize, const char * option ); \
+
+#undef ROOT_TGAXIS_DECLARATIONNONVIRT
+#define ROOT_TGAXIS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTGaxis ( double xmin, double ymin, double xmax, double ymax, double wmin, double wmax, int  ndiv, const char * chopt, double gridlength ); \
+
+#undef ROOT_TSHAPE_DECLARATIONNONVIRT
+#define ROOT_TSHAPE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTShape ( const char * name, const char * title, const char * material ); \
+
+#undef ROOT_TBRIK_DECLARATIONNONVIRT
+#define ROOT_TBRIK_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTBRIK ( const char * name, const char * title, const char * material, double dx, double dy, double dz ); \
+
+#undef ROOT_TTUBE_DECLARATIONNONVIRT
+#define ROOT_TTUBE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTTUBE ( const char * name, const char * title, const char * material, double rmin, double rmax, double dz, double aspect ); \
+
+#undef ROOT_TPCON_DECLARATIONNONVIRT
+#define ROOT_TPCON_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPCON ( const char * name, const char * title, const char * material, double phi1, double dphi1, int  nz ); \
+
+#undef ROOT_TPOLYLINESHAPE_DECLARATIONNONVIRT
+#define ROOT_TPOLYLINESHAPE_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TSPHE_DECLARATIONNONVIRT
+#define ROOT_TSPHE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTSPHE ( const char * name, const char * title, const char * material, double rmin, double rmax, double themin, double themax, double phimin, double phimax ); \
+
+#undef ROOT_TXTRU_DECLARATIONNONVIRT
+#define ROOT_TXTRU_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTXTRU ( const char * name, const char * title, const char * material, int  nyx, int  nz ); \
+
+#undef ROOT_TBOX_DECLARATIONNONVIRT
+#define ROOT_TBOX_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTBox ( double x1, double y1, double x2, double y2 ); \
+
+#undef ROOT_TPAVE_DECLARATIONNONVIRT
+#define ROOT_TPAVE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPave ( double x1, double y1, double x2, double y2, int  bordersize, const char * br ); \
+
+#undef ROOT_TPAVETEXT_DECLARATIONNONVIRT
+#define ROOT_TPAVETEXT_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPaveText ( double x1, double y1, double x2, double y2, const char * br ); \
+
+#undef ROOT_TDIAMOND_DECLARATIONNONVIRT
+#define ROOT_TDIAMOND_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTDiamond ( double x1, double y1, double x2, double y2 ); \
+
+#undef ROOT_TPAVESTATS_DECLARATIONNONVIRT
+#define ROOT_TPAVESTATS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPaveStats ( double x1, double y1, double x2, double y2, const char * br ); \
+
+#undef ROOT_TPAVESTEXT_DECLARATIONNONVIRT
+#define ROOT_TPAVESTEXT_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPavesText ( double x1, double y1, double x2, double y2, int  npaves, const char * br ); \
+
+#undef ROOT_TLEGEND_DECLARATIONNONVIRT
+#define ROOT_TLEGEND_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTLegend ( double x1, double y1, double x2, double y2, const char * header, const char * option ); \
+
+#undef ROOT_TPAVELABEL_DECLARATIONNONVIRT
+#define ROOT_TPAVELABEL_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPaveLabel ( double x1, double y1, double x2, double y2, const char * label, const char * option ); \
+
+#undef ROOT_TPAVECLASS_DECLARATIONNONVIRT
+#define ROOT_TPAVECLASS_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TWBOX_DECLARATIONNONVIRT
+#define ROOT_TWBOX_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTWbox ( double x1, double y1, double x2, double y2, int  color, int  bordersize, int  bordermode ); \
+
+#undef ROOT_TFRAME_DECLARATIONNONVIRT
+#define ROOT_TFRAME_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTFrame ( double x1, double y1, double x2, double y2 ); \
+
+#undef ROOT_TSLIDERBOX_DECLARATIONNONVIRT
+#define ROOT_TSLIDERBOX_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTSliderBox ( double x1, double y1, double x2, double y2, int  color, int  bordersize, int  bordermode ); \
+
+#undef ROOT_TTREE_DECLARATIONNONVIRT
+#define ROOT_TTREE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTTree ( const char * name, const char * title, int  splitlevel ); \
+
+#undef ROOT_TCHAIN_DECLARATIONNONVIRT
+#define ROOT_TCHAIN_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTChain ( const char * name, const char * title ); \
+
+#undef ROOT_TNTUPLE_DECLARATIONNONVIRT
+#define ROOT_TNTUPLE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTNtuple ( const char * name, const char * title, const char * varlist, int  bufsize ); \
+
+#undef ROOT_TNTUPLED_DECLARATIONNONVIRT
+#define ROOT_TNTUPLED_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTNtupleD ( const char * name, const char * title, const char * varlist, int  bufsize ); \
+
+#undef ROOT_TTREESQL_DECLARATIONNONVIRT
+#define ROOT_TTREESQL_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TPOLYLINE_DECLARATIONNONVIRT
+#define ROOT_TPOLYLINE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTPolyLine ( int  n, double * x, double * y, const char * option ); \
+
+#undef ROOT_TCURLYLINE_DECLARATIONNONVIRT
+#define ROOT_TCURLYLINE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTCurlyLine ( double x1, double y1, double x2, double y2, double wl, double amp ); \
+
+#undef ROOT_TCURLYARC_DECLARATIONNONVIRT
+#define ROOT_TCURLYARC_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTCurlyArc ( double x1, double y1, double rad, double phimin, double phimax, double wl, double amp ); \
+
+#undef ROOT_TEFFICIENCY_DECLARATIONNONVIRT
+#define ROOT_TEFFICIENCY_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TAXIS_DECLARATIONNONVIRT
+#define ROOT_TAXIS_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TLATEX_DECLARATIONNONVIRT
+#define ROOT_TLATEX_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTLatex ( double x, double y, const char * text ); \
+Type ## _p Type ## _tLatexDrawLatex ( Type ## _p p, double x, double y, const char * text ); \
+
+#undef ROOT_TTEXT_DECLARATIONNONVIRT
+#define ROOT_TTEXT_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TDIRECTORY_DECLARATIONNONVIRT
+#define ROOT_TDIRECTORY_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TDIRECTORYFILE_DECLARATIONNONVIRT
+#define ROOT_TDIRECTORYFILE_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TFILE_DECLARATIONNONVIRT
+#define ROOT_TFILE_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTFile ( const char * fname, const char * option, const char * ftitle, int  compress ); \
+
+#undef ROOT_TBRANCH_DECLARATIONNONVIRT
+#define ROOT_TBRANCH_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TVIRTUALTREEPLAYER_DECLARATIONNONVIRT
+#define ROOT_TVIRTUALTREEPLAYER_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TTREEPLAYER_DECLARATIONNONVIRT
+#define ROOT_TTREEPLAYER_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAY_DECLARATIONNONVIRT
+#define ROOT_TARRAY_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYC_DECLARATIONNONVIRT
+#define ROOT_TARRAYC_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYD_DECLARATIONNONVIRT
+#define ROOT_TARRAYD_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYF_DECLARATIONNONVIRT
+#define ROOT_TARRAYF_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYI_DECLARATIONNONVIRT
+#define ROOT_TARRAYI_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYL_DECLARATIONNONVIRT
+#define ROOT_TARRAYL_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYL64_DECLARATIONNONVIRT
+#define ROOT_TARRAYL64_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TARRAYS_DECLARATIONNONVIRT
+#define ROOT_TARRAYS_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH1_DECLARATIONNONVIRT
+#define ROOT_TH1_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2_DECLARATIONNONVIRT
+#define ROOT_TH2_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3_DECLARATIONNONVIRT
+#define ROOT_TH3_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH1C_DECLARATIONNONVIRT
+#define ROOT_TH1C_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH1D_DECLARATIONNONVIRT
+#define ROOT_TH1D_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH1F_DECLARATIONNONVIRT
+#define ROOT_TH1F_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTH1F ( const char * name, const char * title, int  nbinsx, double xlow, double xup ); \
+
+#undef ROOT_TH1I_DECLARATIONNONVIRT
+#define ROOT_TH1I_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH1S_DECLARATIONNONVIRT
+#define ROOT_TH1S_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2C_DECLARATIONNONVIRT
+#define ROOT_TH2C_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2D_DECLARATIONNONVIRT
+#define ROOT_TH2D_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2F_DECLARATIONNONVIRT
+#define ROOT_TH2F_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTH2F ( const char * name, const char * title, int  nbinsx, double xlow, double xup, int  nbinsy, double ylow, double yup ); \
+
+#undef ROOT_TH2I_DECLARATIONNONVIRT
+#define ROOT_TH2I_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2POLY_DECLARATIONNONVIRT
+#define ROOT_TH2POLY_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH2S_DECLARATIONNONVIRT
+#define ROOT_TH2S_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3C_DECLARATIONNONVIRT
+#define ROOT_TH3C_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3D_DECLARATIONNONVIRT
+#define ROOT_TH3D_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3F_DECLARATIONNONVIRT
+#define ROOT_TH3F_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3I_DECLARATIONNONVIRT
+#define ROOT_TH3I_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TH3S_DECLARATIONNONVIRT
+#define ROOT_TH3S_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TQOBJECT_DECLARATIONNONVIRT
+#define ROOT_TQOBJECT_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TVIRTUALPAD_DECLARATIONNONVIRT
+#define ROOT_TVIRTUALPAD_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TPAD_DECLARATIONNONVIRT
+#define ROOT_TPAD_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TBUTTON_DECLARATIONNONVIRT
+#define ROOT_TBUTTON_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TGROUPBUTTON_DECLARATIONNONVIRT
+#define ROOT_TGROUPBUTTON_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TCANVAS_DECLARATIONNONVIRT
+#define ROOT_TCANVAS_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTCanvas ( const char * name, const char * title, int  ww, int  wh ); \
+
+#undef ROOT_TDIALOGCANVAS_DECLARATIONNONVIRT
+#define ROOT_TDIALOGCANVAS_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TINSPECTCANVAS_DECLARATIONNONVIRT
+#define ROOT_TINSPECTCANVAS_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TEVEPAD_DECLARATIONNONVIRT
+#define ROOT_TEVEPAD_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TSLIDER_DECLARATIONNONVIRT
+#define ROOT_TSLIDER_DECLARATIONNONVIRT(Type) \
+
+#undef ROOT_TAPPLICATION_DECLARATIONNONVIRT
+#define ROOT_TAPPLICATION_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTApplication ( const char * appClassName, int * argc, char ** argv )
+#undef ROOT_TRINT_DECLARATIONNONVIRT
+#define ROOT_TRINT_DECLARATIONNONVIRT(Type) \
+Type ## _p Type ## _newTRint ( const char * appClassName, int * argc, char ** argv ); \
+
+
+ROOT_TYPE_DECLARATION(TObject);
+ROOT_TYPE_DECLARATION(TNamed);
+ROOT_TYPE_DECLARATION(TFormula);
+ROOT_TYPE_DECLARATION(TAtt3D);
+ROOT_TYPE_DECLARATION(TAttAxis);
+ROOT_TYPE_DECLARATION(TAttBBox);
+ROOT_TYPE_DECLARATION(TAttCanvas);
+ROOT_TYPE_DECLARATION(TAttFill);
+ROOT_TYPE_DECLARATION(TAttImage);
+ROOT_TYPE_DECLARATION(TAttLine);
+ROOT_TYPE_DECLARATION(TAttMarker);
+ROOT_TYPE_DECLARATION(TAttPad);
+ROOT_TYPE_DECLARATION(TAttParticle);
+ROOT_TYPE_DECLARATION(TAttText);
+ROOT_TYPE_DECLARATION(THStack);
+ROOT_TYPE_DECLARATION(TF1);
+ROOT_TYPE_DECLARATION(TGraph);
+ROOT_TYPE_DECLARATION(TGraphAsymmErrors);
+ROOT_TYPE_DECLARATION(TCutG);
+ROOT_TYPE_DECLARATION(TGraphBentErrors);
+ROOT_TYPE_DECLARATION(TGraphErrors);
+ROOT_TYPE_DECLARATION(TGraphPolar);
+ROOT_TYPE_DECLARATION(TGraphQQ);
+ROOT_TYPE_DECLARATION(TEllipse);
+ROOT_TYPE_DECLARATION(TArc);
+ROOT_TYPE_DECLARATION(TCrown);
+ROOT_TYPE_DECLARATION(TLine);
+ROOT_TYPE_DECLARATION(TArrow);
+ROOT_TYPE_DECLARATION(TGaxis);
+ROOT_TYPE_DECLARATION(TShape);
+ROOT_TYPE_DECLARATION(TBRIK);
+ROOT_TYPE_DECLARATION(TTUBE);
+ROOT_TYPE_DECLARATION(TPCON);
+ROOT_TYPE_DECLARATION(TPolyLineShape);
+ROOT_TYPE_DECLARATION(TSPHE);
+ROOT_TYPE_DECLARATION(TXTRU);
+ROOT_TYPE_DECLARATION(TBox);
+ROOT_TYPE_DECLARATION(TPave);
+ROOT_TYPE_DECLARATION(TPaveText);
+ROOT_TYPE_DECLARATION(TDiamond);
+ROOT_TYPE_DECLARATION(TPaveStats);
+ROOT_TYPE_DECLARATION(TPavesText);
+ROOT_TYPE_DECLARATION(TLegend);
+ROOT_TYPE_DECLARATION(TPaveLabel);
+ROOT_TYPE_DECLARATION(TPaveClass);
+ROOT_TYPE_DECLARATION(TWbox);
+ROOT_TYPE_DECLARATION(TFrame);
+ROOT_TYPE_DECLARATION(TSliderBox);
+ROOT_TYPE_DECLARATION(TTree);
+ROOT_TYPE_DECLARATION(TChain);
+ROOT_TYPE_DECLARATION(TNtuple);
+ROOT_TYPE_DECLARATION(TNtupleD);
+ROOT_TYPE_DECLARATION(TTreeSQL);
+ROOT_TYPE_DECLARATION(TPolyLine);
+ROOT_TYPE_DECLARATION(TCurlyLine);
+ROOT_TYPE_DECLARATION(TCurlyArc);
+ROOT_TYPE_DECLARATION(TEfficiency);
+ROOT_TYPE_DECLARATION(TAxis);
+ROOT_TYPE_DECLARATION(TLatex);
+ROOT_TYPE_DECLARATION(TText);
+ROOT_TYPE_DECLARATION(TDirectory);
+ROOT_TYPE_DECLARATION(TDirectoryFile);
+ROOT_TYPE_DECLARATION(TFile);
+ROOT_TYPE_DECLARATION(TBranch);
+ROOT_TYPE_DECLARATION(TVirtualTreePlayer);
+ROOT_TYPE_DECLARATION(TTreePlayer);
+ROOT_TYPE_DECLARATION(TArray);
+ROOT_TYPE_DECLARATION(TArrayC);
+ROOT_TYPE_DECLARATION(TArrayD);
+ROOT_TYPE_DECLARATION(TArrayF);
+ROOT_TYPE_DECLARATION(TArrayI);
+ROOT_TYPE_DECLARATION(TArrayL);
+ROOT_TYPE_DECLARATION(TArrayL64);
+ROOT_TYPE_DECLARATION(TArrayS);
+ROOT_TYPE_DECLARATION(TH1);
+ROOT_TYPE_DECLARATION(TH2);
+ROOT_TYPE_DECLARATION(TH3);
+ROOT_TYPE_DECLARATION(TH1C);
+ROOT_TYPE_DECLARATION(TH1D);
+ROOT_TYPE_DECLARATION(TH1F);
+ROOT_TYPE_DECLARATION(TH1I);
+ROOT_TYPE_DECLARATION(TH1S);
+ROOT_TYPE_DECLARATION(TH2C);
+ROOT_TYPE_DECLARATION(TH2D);
+ROOT_TYPE_DECLARATION(TH2F);
+ROOT_TYPE_DECLARATION(TH2I);
+ROOT_TYPE_DECLARATION(TH2Poly);
+ROOT_TYPE_DECLARATION(TH2S);
+ROOT_TYPE_DECLARATION(TH3C);
+ROOT_TYPE_DECLARATION(TH3D);
+ROOT_TYPE_DECLARATION(TH3F);
+ROOT_TYPE_DECLARATION(TH3I);
+ROOT_TYPE_DECLARATION(TH3S);
+ROOT_TYPE_DECLARATION(TQObject);
+ROOT_TYPE_DECLARATION(TVirtualPad);
+ROOT_TYPE_DECLARATION(TPad);
+ROOT_TYPE_DECLARATION(TButton);
+ROOT_TYPE_DECLARATION(TGroupButton);
+ROOT_TYPE_DECLARATION(TCanvas);
+ROOT_TYPE_DECLARATION(TDialogCanvas);
+ROOT_TYPE_DECLARATION(TInspectCanvas);
+ROOT_TYPE_DECLARATION(TEvePad);
+ROOT_TYPE_DECLARATION(TSlider);
+ROOT_TYPE_DECLARATION(TApplication);
+ROOT_TYPE_DECLARATION(TRint);
+
+ROOT_TAPPLICATION_DECLARATIONVIRT(TRint);
+ROOT_TAPPLICATION_DECLARATIONVIRT(TApplication);
+ROOT_TARC_DECLARATIONVIRT(TArc);
+ROOT_TARRAY_DECLARATIONVIRT(TH3S);
+ROOT_TARRAY_DECLARATIONVIRT(TH3I);
+ROOT_TARRAY_DECLARATIONVIRT(TH3F);
+ROOT_TARRAY_DECLARATIONVIRT(TH3D);
+ROOT_TARRAY_DECLARATIONVIRT(TH3C);
+ROOT_TARRAY_DECLARATIONVIRT(TH2S);
+ROOT_TARRAY_DECLARATIONVIRT(TH2I);
+ROOT_TARRAY_DECLARATIONVIRT(TH2F);
+ROOT_TARRAY_DECLARATIONVIRT(TH2D);
+ROOT_TARRAY_DECLARATIONVIRT(TH2C);
+ROOT_TARRAY_DECLARATIONVIRT(TH1S);
+ROOT_TARRAY_DECLARATIONVIRT(TH1I);
+ROOT_TARRAY_DECLARATIONVIRT(TH1F);
+ROOT_TARRAY_DECLARATIONVIRT(TH1D);
+ROOT_TARRAY_DECLARATIONVIRT(TH1C);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayS);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayL64);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayL);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayI);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayF);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayD);
+ROOT_TARRAY_DECLARATIONVIRT(TArrayC);
+ROOT_TARRAY_DECLARATIONVIRT(TArray);
+ROOT_TARRAYC_DECLARATIONVIRT(TH3C);
+ROOT_TARRAYC_DECLARATIONVIRT(TH2C);
+ROOT_TARRAYC_DECLARATIONVIRT(TH1C);
+ROOT_TARRAYC_DECLARATIONVIRT(TArrayC);
+ROOT_TARRAYD_DECLARATIONVIRT(TH3D);
+ROOT_TARRAYD_DECLARATIONVIRT(TH2D);
+ROOT_TARRAYD_DECLARATIONVIRT(TH1D);
+ROOT_TARRAYD_DECLARATIONVIRT(TArrayD);
+ROOT_TARRAYF_DECLARATIONVIRT(TH3F);
+ROOT_TARRAYF_DECLARATIONVIRT(TH2F);
+ROOT_TARRAYF_DECLARATIONVIRT(TH1F);
+ROOT_TARRAYF_DECLARATIONVIRT(TArrayF);
+ROOT_TARRAYI_DECLARATIONVIRT(TH3I);
+ROOT_TARRAYI_DECLARATIONVIRT(TH2I);
+ROOT_TARRAYI_DECLARATIONVIRT(TH1I);
+ROOT_TARRAYI_DECLARATIONVIRT(TArrayI);
+ROOT_TARRAYL_DECLARATIONVIRT(TArrayL);
+ROOT_TARRAYL64_DECLARATIONVIRT(TArrayL64);
+ROOT_TARRAYS_DECLARATIONVIRT(TH3S);
+ROOT_TARRAYS_DECLARATIONVIRT(TH2S);
+ROOT_TARRAYS_DECLARATIONVIRT(TH1S);
+ROOT_TARRAYS_DECLARATIONVIRT(TArrayS);
+ROOT_TARROW_DECLARATIONVIRT(TArrow);
+ROOT_TATT3D_DECLARATIONVIRT(TH3S);
+ROOT_TATT3D_DECLARATIONVIRT(TH3I);
+ROOT_TATT3D_DECLARATIONVIRT(TH3F);
+ROOT_TATT3D_DECLARATIONVIRT(TH3D);
+ROOT_TATT3D_DECLARATIONVIRT(TH3C);
+ROOT_TATT3D_DECLARATIONVIRT(TH3);
+ROOT_TATT3D_DECLARATIONVIRT(TXTRU);
+ROOT_TATT3D_DECLARATIONVIRT(TSPHE);
+ROOT_TATT3D_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TATT3D_DECLARATIONVIRT(TPCON);
+ROOT_TATT3D_DECLARATIONVIRT(TTUBE);
+ROOT_TATT3D_DECLARATIONVIRT(TBRIK);
+ROOT_TATT3D_DECLARATIONVIRT(TShape);
+ROOT_TATT3D_DECLARATIONVIRT(TAtt3D);
+ROOT_TATTAXIS_DECLARATIONVIRT(TAxis);
+ROOT_TATTAXIS_DECLARATIONVIRT(TAttAxis);
+ROOT_TATTBBOX_DECLARATIONVIRT(TAttBBox);
+ROOT_TATTCANVAS_DECLARATIONVIRT(TAttCanvas);
+ROOT_TATTFILL_DECLARATIONVIRT(TSlider);
+ROOT_TATTFILL_DECLARATIONVIRT(TEvePad);
+ROOT_TATTFILL_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TATTFILL_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TATTFILL_DECLARATIONVIRT(TCanvas);
+ROOT_TATTFILL_DECLARATIONVIRT(TGroupButton);
+ROOT_TATTFILL_DECLARATIONVIRT(TButton);
+ROOT_TATTFILL_DECLARATIONVIRT(TPad);
+ROOT_TATTFILL_DECLARATIONVIRT(TVirtualPad);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3S);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3I);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3F);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3D);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3C);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2S);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2Poly);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2I);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2F);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2D);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2C);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1S);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1I);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1F);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1D);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1C);
+ROOT_TATTFILL_DECLARATIONVIRT(TH3);
+ROOT_TATTFILL_DECLARATIONVIRT(TH2);
+ROOT_TATTFILL_DECLARATIONVIRT(TH1);
+ROOT_TATTFILL_DECLARATIONVIRT(TBranch);
+ROOT_TATTFILL_DECLARATIONVIRT(TEfficiency);
+ROOT_TATTFILL_DECLARATIONVIRT(TCurlyArc);
+ROOT_TATTFILL_DECLARATIONVIRT(TCurlyLine);
+ROOT_TATTFILL_DECLARATIONVIRT(TPolyLine);
+ROOT_TATTFILL_DECLARATIONVIRT(TTreeSQL);
+ROOT_TATTFILL_DECLARATIONVIRT(TNtupleD);
+ROOT_TATTFILL_DECLARATIONVIRT(TNtuple);
+ROOT_TATTFILL_DECLARATIONVIRT(TChain);
+ROOT_TATTFILL_DECLARATIONVIRT(TTree);
+ROOT_TATTFILL_DECLARATIONVIRT(TSliderBox);
+ROOT_TATTFILL_DECLARATIONVIRT(TFrame);
+ROOT_TATTFILL_DECLARATIONVIRT(TWbox);
+ROOT_TATTFILL_DECLARATIONVIRT(TPaveClass);
+ROOT_TATTFILL_DECLARATIONVIRT(TPaveLabel);
+ROOT_TATTFILL_DECLARATIONVIRT(TLegend);
+ROOT_TATTFILL_DECLARATIONVIRT(TPavesText);
+ROOT_TATTFILL_DECLARATIONVIRT(TPaveStats);
+ROOT_TATTFILL_DECLARATIONVIRT(TDiamond);
+ROOT_TATTFILL_DECLARATIONVIRT(TPaveText);
+ROOT_TATTFILL_DECLARATIONVIRT(TPave);
+ROOT_TATTFILL_DECLARATIONVIRT(TBox);
+ROOT_TATTFILL_DECLARATIONVIRT(TXTRU);
+ROOT_TATTFILL_DECLARATIONVIRT(TSPHE);
+ROOT_TATTFILL_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TATTFILL_DECLARATIONVIRT(TPCON);
+ROOT_TATTFILL_DECLARATIONVIRT(TTUBE);
+ROOT_TATTFILL_DECLARATIONVIRT(TBRIK);
+ROOT_TATTFILL_DECLARATIONVIRT(TShape);
+ROOT_TATTFILL_DECLARATIONVIRT(TArrow);
+ROOT_TATTFILL_DECLARATIONVIRT(TCrown);
+ROOT_TATTFILL_DECLARATIONVIRT(TArc);
+ROOT_TATTFILL_DECLARATIONVIRT(TEllipse);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraphQQ);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraphPolar);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraphErrors);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TATTFILL_DECLARATIONVIRT(TCutG);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TATTFILL_DECLARATIONVIRT(TGraph);
+ROOT_TATTFILL_DECLARATIONVIRT(TF1);
+ROOT_TATTFILL_DECLARATIONVIRT(TAttFill);
+ROOT_TATTIMAGE_DECLARATIONVIRT(TAttImage);
+ROOT_TATTLINE_DECLARATIONVIRT(TSlider);
+ROOT_TATTLINE_DECLARATIONVIRT(TEvePad);
+ROOT_TATTLINE_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TATTLINE_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TATTLINE_DECLARATIONVIRT(TCanvas);
+ROOT_TATTLINE_DECLARATIONVIRT(TGroupButton);
+ROOT_TATTLINE_DECLARATIONVIRT(TButton);
+ROOT_TATTLINE_DECLARATIONVIRT(TPad);
+ROOT_TATTLINE_DECLARATIONVIRT(TVirtualPad);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3S);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3I);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3F);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3D);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3C);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2S);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2Poly);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2I);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2F);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2D);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2C);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1S);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1I);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1F);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1D);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1C);
+ROOT_TATTLINE_DECLARATIONVIRT(TH3);
+ROOT_TATTLINE_DECLARATIONVIRT(TH2);
+ROOT_TATTLINE_DECLARATIONVIRT(TH1);
+ROOT_TATTLINE_DECLARATIONVIRT(TLatex);
+ROOT_TATTLINE_DECLARATIONVIRT(TEfficiency);
+ROOT_TATTLINE_DECLARATIONVIRT(TCurlyArc);
+ROOT_TATTLINE_DECLARATIONVIRT(TCurlyLine);
+ROOT_TATTLINE_DECLARATIONVIRT(TPolyLine);
+ROOT_TATTLINE_DECLARATIONVIRT(TTreeSQL);
+ROOT_TATTLINE_DECLARATIONVIRT(TNtupleD);
+ROOT_TATTLINE_DECLARATIONVIRT(TNtuple);
+ROOT_TATTLINE_DECLARATIONVIRT(TChain);
+ROOT_TATTLINE_DECLARATIONVIRT(TTree);
+ROOT_TATTLINE_DECLARATIONVIRT(TSliderBox);
+ROOT_TATTLINE_DECLARATIONVIRT(TFrame);
+ROOT_TATTLINE_DECLARATIONVIRT(TWbox);
+ROOT_TATTLINE_DECLARATIONVIRT(TPaveClass);
+ROOT_TATTLINE_DECLARATIONVIRT(TPaveLabel);
+ROOT_TATTLINE_DECLARATIONVIRT(TLegend);
+ROOT_TATTLINE_DECLARATIONVIRT(TPavesText);
+ROOT_TATTLINE_DECLARATIONVIRT(TPaveStats);
+ROOT_TATTLINE_DECLARATIONVIRT(TDiamond);
+ROOT_TATTLINE_DECLARATIONVIRT(TPaveText);
+ROOT_TATTLINE_DECLARATIONVIRT(TPave);
+ROOT_TATTLINE_DECLARATIONVIRT(TBox);
+ROOT_TATTLINE_DECLARATIONVIRT(TXTRU);
+ROOT_TATTLINE_DECLARATIONVIRT(TSPHE);
+ROOT_TATTLINE_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TATTLINE_DECLARATIONVIRT(TPCON);
+ROOT_TATTLINE_DECLARATIONVIRT(TTUBE);
+ROOT_TATTLINE_DECLARATIONVIRT(TBRIK);
+ROOT_TATTLINE_DECLARATIONVIRT(TShape);
+ROOT_TATTLINE_DECLARATIONVIRT(TGaxis);
+ROOT_TATTLINE_DECLARATIONVIRT(TArrow);
+ROOT_TATTLINE_DECLARATIONVIRT(TLine);
+ROOT_TATTLINE_DECLARATIONVIRT(TCrown);
+ROOT_TATTLINE_DECLARATIONVIRT(TArc);
+ROOT_TATTLINE_DECLARATIONVIRT(TEllipse);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraphQQ);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraphPolar);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraphErrors);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TATTLINE_DECLARATIONVIRT(TCutG);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TATTLINE_DECLARATIONVIRT(TGraph);
+ROOT_TATTLINE_DECLARATIONVIRT(TF1);
+ROOT_TATTLINE_DECLARATIONVIRT(TAttLine);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3S);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3I);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3F);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3D);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3C);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2S);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2Poly);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2I);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2F);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2D);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2C);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1S);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1I);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1F);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1D);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1C);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH3);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH2);
+ROOT_TATTMARKER_DECLARATIONVIRT(TH1);
+ROOT_TATTMARKER_DECLARATIONVIRT(TEfficiency);
+ROOT_TATTMARKER_DECLARATIONVIRT(TTreeSQL);
+ROOT_TATTMARKER_DECLARATIONVIRT(TNtupleD);
+ROOT_TATTMARKER_DECLARATIONVIRT(TNtuple);
+ROOT_TATTMARKER_DECLARATIONVIRT(TChain);
+ROOT_TATTMARKER_DECLARATIONVIRT(TTree);
+ROOT_TATTMARKER_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraphQQ);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraphPolar);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraphErrors);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TATTMARKER_DECLARATIONVIRT(TCutG);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TATTMARKER_DECLARATIONVIRT(TGraph);
+ROOT_TATTMARKER_DECLARATIONVIRT(TAttMarker);
+ROOT_TATTPAD_DECLARATIONVIRT(TSlider);
+ROOT_TATTPAD_DECLARATIONVIRT(TEvePad);
+ROOT_TATTPAD_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TATTPAD_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TATTPAD_DECLARATIONVIRT(TCanvas);
+ROOT_TATTPAD_DECLARATIONVIRT(TGroupButton);
+ROOT_TATTPAD_DECLARATIONVIRT(TButton);
+ROOT_TATTPAD_DECLARATIONVIRT(TPad);
+ROOT_TATTPAD_DECLARATIONVIRT(TVirtualPad);
+ROOT_TATTPAD_DECLARATIONVIRT(TAttPad);
+ROOT_TATTPARTICLE_DECLARATIONVIRT(TAttParticle);
+ROOT_TATTTEXT_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TATTTEXT_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TATTTEXT_DECLARATIONVIRT(TGroupButton);
+ROOT_TATTTEXT_DECLARATIONVIRT(TButton);
+ROOT_TATTTEXT_DECLARATIONVIRT(TText);
+ROOT_TATTTEXT_DECLARATIONVIRT(TLatex);
+ROOT_TATTTEXT_DECLARATIONVIRT(TPaveClass);
+ROOT_TATTTEXT_DECLARATIONVIRT(TPaveLabel);
+ROOT_TATTTEXT_DECLARATIONVIRT(TLegend);
+ROOT_TATTTEXT_DECLARATIONVIRT(TPavesText);
+ROOT_TATTTEXT_DECLARATIONVIRT(TPaveStats);
+ROOT_TATTTEXT_DECLARATIONVIRT(TDiamond);
+ROOT_TATTTEXT_DECLARATIONVIRT(TPaveText);
+ROOT_TATTTEXT_DECLARATIONVIRT(TGaxis);
+ROOT_TATTTEXT_DECLARATIONVIRT(TAttText);
+ROOT_TAXIS_DECLARATIONVIRT(TAxis);
+ROOT_TBRIK_DECLARATIONVIRT(TBRIK);
+ROOT_TBOX_DECLARATIONVIRT(TSliderBox);
+ROOT_TBOX_DECLARATIONVIRT(TFrame);
+ROOT_TBOX_DECLARATIONVIRT(TWbox);
+ROOT_TBOX_DECLARATIONVIRT(TPaveClass);
+ROOT_TBOX_DECLARATIONVIRT(TPaveLabel);
+ROOT_TBOX_DECLARATIONVIRT(TLegend);
+ROOT_TBOX_DECLARATIONVIRT(TPavesText);
+ROOT_TBOX_DECLARATIONVIRT(TPaveStats);
+ROOT_TBOX_DECLARATIONVIRT(TDiamond);
+ROOT_TBOX_DECLARATIONVIRT(TPaveText);
+ROOT_TBOX_DECLARATIONVIRT(TPave);
+ROOT_TBOX_DECLARATIONVIRT(TBox);
+ROOT_TBRANCH_DECLARATIONVIRT(TBranch);
+ROOT_TBUTTON_DECLARATIONVIRT(TGroupButton);
+ROOT_TBUTTON_DECLARATIONVIRT(TButton);
+ROOT_TCANVAS_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TCANVAS_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TCANVAS_DECLARATIONVIRT(TCanvas);
+ROOT_TCHAIN_DECLARATIONVIRT(TChain);
+ROOT_TCROWN_DECLARATIONVIRT(TCrown);
+ROOT_TCURLYARC_DECLARATIONVIRT(TCurlyArc);
+ROOT_TCURLYLINE_DECLARATIONVIRT(TCurlyArc);
+ROOT_TCURLYLINE_DECLARATIONVIRT(TCurlyLine);
+ROOT_TCUTG_DECLARATIONVIRT(TCutG);
+ROOT_TDIALOGCANVAS_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TDIAMOND_DECLARATIONVIRT(TDiamond);
+ROOT_TDIRECTORY_DECLARATIONVIRT(TFile);
+ROOT_TDIRECTORY_DECLARATIONVIRT(TDirectoryFile);
+ROOT_TDIRECTORY_DECLARATIONVIRT(TDirectory);
+ROOT_TDIRECTORYFILE_DECLARATIONVIRT(TFile);
+ROOT_TDIRECTORYFILE_DECLARATIONVIRT(TDirectoryFile);
+ROOT_TEFFICIENCY_DECLARATIONVIRT(TEfficiency);
+ROOT_TELLIPSE_DECLARATIONVIRT(TCrown);
+ROOT_TELLIPSE_DECLARATIONVIRT(TArc);
+ROOT_TELLIPSE_DECLARATIONVIRT(TEllipse);
+ROOT_TEVEPAD_DECLARATIONVIRT(TEvePad);
+ROOT_TF1_DECLARATIONVIRT(TF1);
+ROOT_TFILE_DECLARATIONVIRT(TFile);
+ROOT_TFORMULA_DECLARATIONVIRT(TF1);
+ROOT_TFORMULA_DECLARATIONVIRT(TFormula);
+ROOT_TFRAME_DECLARATIONVIRT(TFrame);
+ROOT_TGAXIS_DECLARATIONVIRT(TGaxis);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraphQQ);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraphPolar);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraphErrors);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TGRAPH_DECLARATIONVIRT(TCutG);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TGRAPH_DECLARATIONVIRT(TGraph);
+ROOT_TGRAPHASYMMERRORS_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TGRAPHBENTERRORS_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TGRAPHERRORS_DECLARATIONVIRT(TGraphPolar);
+ROOT_TGRAPHERRORS_DECLARATIONVIRT(TGraphErrors);
+ROOT_TGRAPHPOLAR_DECLARATIONVIRT(TGraphPolar);
+ROOT_TGRAPHQQ_DECLARATIONVIRT(TGraphQQ);
+ROOT_TGROUPBUTTON_DECLARATIONVIRT(TGroupButton);
+ROOT_TH1_DECLARATIONVIRT(TH3S);
+ROOT_TH1_DECLARATIONVIRT(TH3I);
+ROOT_TH1_DECLARATIONVIRT(TH3F);
+ROOT_TH1_DECLARATIONVIRT(TH3D);
+ROOT_TH1_DECLARATIONVIRT(TH3C);
+ROOT_TH1_DECLARATIONVIRT(TH2S);
+ROOT_TH1_DECLARATIONVIRT(TH2Poly);
+ROOT_TH1_DECLARATIONVIRT(TH2I);
+ROOT_TH1_DECLARATIONVIRT(TH2F);
+ROOT_TH1_DECLARATIONVIRT(TH2D);
+ROOT_TH1_DECLARATIONVIRT(TH2C);
+ROOT_TH1_DECLARATIONVIRT(TH1S);
+ROOT_TH1_DECLARATIONVIRT(TH1I);
+ROOT_TH1_DECLARATIONVIRT(TH1F);
+ROOT_TH1_DECLARATIONVIRT(TH1D);
+ROOT_TH1_DECLARATIONVIRT(TH1C);
+ROOT_TH1_DECLARATIONVIRT(TH3);
+ROOT_TH1_DECLARATIONVIRT(TH2);
+ROOT_TH1_DECLARATIONVIRT(TH1);
+ROOT_TH1C_DECLARATIONVIRT(TH1C);
+ROOT_TH1D_DECLARATIONVIRT(TH1D);
+ROOT_TH1F_DECLARATIONVIRT(TH1F);
+ROOT_TH1I_DECLARATIONVIRT(TH1I);
+ROOT_TH1S_DECLARATIONVIRT(TH1S);
+ROOT_TH2_DECLARATIONVIRT(TH2S);
+ROOT_TH2_DECLARATIONVIRT(TH2Poly);
+ROOT_TH2_DECLARATIONVIRT(TH2I);
+ROOT_TH2_DECLARATIONVIRT(TH2F);
+ROOT_TH2_DECLARATIONVIRT(TH2D);
+ROOT_TH2_DECLARATIONVIRT(TH2C);
+ROOT_TH2_DECLARATIONVIRT(TH2);
+ROOT_TH2C_DECLARATIONVIRT(TH2C);
+ROOT_TH2D_DECLARATIONVIRT(TH2D);
+ROOT_TH2F_DECLARATIONVIRT(TH2F);
+ROOT_TH2I_DECLARATIONVIRT(TH2I);
+ROOT_TH2POLY_DECLARATIONVIRT(TH2Poly);
+ROOT_TH2S_DECLARATIONVIRT(TH2S);
+ROOT_TH3_DECLARATIONVIRT(TH3S);
+ROOT_TH3_DECLARATIONVIRT(TH3I);
+ROOT_TH3_DECLARATIONVIRT(TH3F);
+ROOT_TH3_DECLARATIONVIRT(TH3D);
+ROOT_TH3_DECLARATIONVIRT(TH3C);
+ROOT_TH3_DECLARATIONVIRT(TH3);
+ROOT_TH3C_DECLARATIONVIRT(TH3C);
+ROOT_TH3D_DECLARATIONVIRT(TH3D);
+ROOT_TH3F_DECLARATIONVIRT(TH3F);
+ROOT_TH3I_DECLARATIONVIRT(TH3I);
+ROOT_TH3S_DECLARATIONVIRT(TH3S);
+ROOT_THSTACK_DECLARATIONVIRT(THStack);
+ROOT_TINSPECTCANVAS_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TLATEX_DECLARATIONVIRT(TLatex);
+ROOT_TLEGEND_DECLARATIONVIRT(TLegend);
+ROOT_TLINE_DECLARATIONVIRT(TGaxis);
+ROOT_TLINE_DECLARATIONVIRT(TArrow);
+ROOT_TLINE_DECLARATIONVIRT(TLine);
+ROOT_TNAMED_DECLARATIONVIRT(TH3S);
+ROOT_TNAMED_DECLARATIONVIRT(TH3I);
+ROOT_TNAMED_DECLARATIONVIRT(TH3F);
+ROOT_TNAMED_DECLARATIONVIRT(TH3D);
+ROOT_TNAMED_DECLARATIONVIRT(TH3C);
+ROOT_TNAMED_DECLARATIONVIRT(TH2S);
+ROOT_TNAMED_DECLARATIONVIRT(TH2Poly);
+ROOT_TNAMED_DECLARATIONVIRT(TH2I);
+ROOT_TNAMED_DECLARATIONVIRT(TH2F);
+ROOT_TNAMED_DECLARATIONVIRT(TH2D);
+ROOT_TNAMED_DECLARATIONVIRT(TH2C);
+ROOT_TNAMED_DECLARATIONVIRT(TH1S);
+ROOT_TNAMED_DECLARATIONVIRT(TH1I);
+ROOT_TNAMED_DECLARATIONVIRT(TH1F);
+ROOT_TNAMED_DECLARATIONVIRT(TH1D);
+ROOT_TNAMED_DECLARATIONVIRT(TH1C);
+ROOT_TNAMED_DECLARATIONVIRT(TH3);
+ROOT_TNAMED_DECLARATIONVIRT(TH2);
+ROOT_TNAMED_DECLARATIONVIRT(TH1);
+ROOT_TNAMED_DECLARATIONVIRT(TBranch);
+ROOT_TNAMED_DECLARATIONVIRT(TFile);
+ROOT_TNAMED_DECLARATIONVIRT(TDirectoryFile);
+ROOT_TNAMED_DECLARATIONVIRT(TDirectory);
+ROOT_TNAMED_DECLARATIONVIRT(TText);
+ROOT_TNAMED_DECLARATIONVIRT(TLatex);
+ROOT_TNAMED_DECLARATIONVIRT(TAxis);
+ROOT_TNAMED_DECLARATIONVIRT(TEfficiency);
+ROOT_TNAMED_DECLARATIONVIRT(TTreeSQL);
+ROOT_TNAMED_DECLARATIONVIRT(TNtupleD);
+ROOT_TNAMED_DECLARATIONVIRT(TNtuple);
+ROOT_TNAMED_DECLARATIONVIRT(TChain);
+ROOT_TNAMED_DECLARATIONVIRT(TTree);
+ROOT_TNAMED_DECLARATIONVIRT(TXTRU);
+ROOT_TNAMED_DECLARATIONVIRT(TSPHE);
+ROOT_TNAMED_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TNAMED_DECLARATIONVIRT(TPCON);
+ROOT_TNAMED_DECLARATIONVIRT(TTUBE);
+ROOT_TNAMED_DECLARATIONVIRT(TBRIK);
+ROOT_TNAMED_DECLARATIONVIRT(TShape);
+ROOT_TNAMED_DECLARATIONVIRT(TGraphQQ);
+ROOT_TNAMED_DECLARATIONVIRT(TGraphPolar);
+ROOT_TNAMED_DECLARATIONVIRT(TGraphErrors);
+ROOT_TNAMED_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TNAMED_DECLARATIONVIRT(TCutG);
+ROOT_TNAMED_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TNAMED_DECLARATIONVIRT(TGraph);
+ROOT_TNAMED_DECLARATIONVIRT(THStack);
+ROOT_TNAMED_DECLARATIONVIRT(TAttParticle);
+ROOT_TNAMED_DECLARATIONVIRT(TNamed);
+ROOT_TNTUPLE_DECLARATIONVIRT(TNtuple);
+ROOT_TNTUPLED_DECLARATIONVIRT(TNtupleD);
+ROOT_TOBJECT_DECLARATIONVIRT(TRint);
+ROOT_TOBJECT_DECLARATIONVIRT(TApplication);
+ROOT_TOBJECT_DECLARATIONVIRT(TSlider);
+ROOT_TOBJECT_DECLARATIONVIRT(TEvePad);
+ROOT_TOBJECT_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TOBJECT_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TOBJECT_DECLARATIONVIRT(TCanvas);
+ROOT_TOBJECT_DECLARATIONVIRT(TGroupButton);
+ROOT_TOBJECT_DECLARATIONVIRT(TButton);
+ROOT_TOBJECT_DECLARATIONVIRT(TPad);
+ROOT_TOBJECT_DECLARATIONVIRT(TVirtualPad);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3S);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3I);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3F);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3D);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3C);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2S);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2Poly);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2I);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2F);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2D);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2C);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1S);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1I);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1F);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1D);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1C);
+ROOT_TOBJECT_DECLARATIONVIRT(TH3);
+ROOT_TOBJECT_DECLARATIONVIRT(TH2);
+ROOT_TOBJECT_DECLARATIONVIRT(TH1);
+ROOT_TOBJECT_DECLARATIONVIRT(TTreePlayer);
+ROOT_TOBJECT_DECLARATIONVIRT(TVirtualTreePlayer);
+ROOT_TOBJECT_DECLARATIONVIRT(TBranch);
+ROOT_TOBJECT_DECLARATIONVIRT(TFile);
+ROOT_TOBJECT_DECLARATIONVIRT(TDirectoryFile);
+ROOT_TOBJECT_DECLARATIONVIRT(TDirectory);
+ROOT_TOBJECT_DECLARATIONVIRT(TText);
+ROOT_TOBJECT_DECLARATIONVIRT(TLatex);
+ROOT_TOBJECT_DECLARATIONVIRT(TAxis);
+ROOT_TOBJECT_DECLARATIONVIRT(TEfficiency);
+ROOT_TOBJECT_DECLARATIONVIRT(TCurlyArc);
+ROOT_TOBJECT_DECLARATIONVIRT(TCurlyLine);
+ROOT_TOBJECT_DECLARATIONVIRT(TPolyLine);
+ROOT_TOBJECT_DECLARATIONVIRT(TTreeSQL);
+ROOT_TOBJECT_DECLARATIONVIRT(TNtupleD);
+ROOT_TOBJECT_DECLARATIONVIRT(TNtuple);
+ROOT_TOBJECT_DECLARATIONVIRT(TChain);
+ROOT_TOBJECT_DECLARATIONVIRT(TTree);
+ROOT_TOBJECT_DECLARATIONVIRT(TSliderBox);
+ROOT_TOBJECT_DECLARATIONVIRT(TFrame);
+ROOT_TOBJECT_DECLARATIONVIRT(TWbox);
+ROOT_TOBJECT_DECLARATIONVIRT(TPaveClass);
+ROOT_TOBJECT_DECLARATIONVIRT(TPaveLabel);
+ROOT_TOBJECT_DECLARATIONVIRT(TLegend);
+ROOT_TOBJECT_DECLARATIONVIRT(TPavesText);
+ROOT_TOBJECT_DECLARATIONVIRT(TPaveStats);
+ROOT_TOBJECT_DECLARATIONVIRT(TDiamond);
+ROOT_TOBJECT_DECLARATIONVIRT(TPaveText);
+ROOT_TOBJECT_DECLARATIONVIRT(TPave);
+ROOT_TOBJECT_DECLARATIONVIRT(TBox);
+ROOT_TOBJECT_DECLARATIONVIRT(TXTRU);
+ROOT_TOBJECT_DECLARATIONVIRT(TSPHE);
+ROOT_TOBJECT_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TOBJECT_DECLARATIONVIRT(TPCON);
+ROOT_TOBJECT_DECLARATIONVIRT(TTUBE);
+ROOT_TOBJECT_DECLARATIONVIRT(TBRIK);
+ROOT_TOBJECT_DECLARATIONVIRT(TShape);
+ROOT_TOBJECT_DECLARATIONVIRT(TGaxis);
+ROOT_TOBJECT_DECLARATIONVIRT(TArrow);
+ROOT_TOBJECT_DECLARATIONVIRT(TLine);
+ROOT_TOBJECT_DECLARATIONVIRT(TCrown);
+ROOT_TOBJECT_DECLARATIONVIRT(TArc);
+ROOT_TOBJECT_DECLARATIONVIRT(TEllipse);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraphQQ);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraphPolar);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraphErrors);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraphBentErrors);
+ROOT_TOBJECT_DECLARATIONVIRT(TCutG);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraphAsymmErrors);
+ROOT_TOBJECT_DECLARATIONVIRT(TGraph);
+ROOT_TOBJECT_DECLARATIONVIRT(THStack);
+ROOT_TOBJECT_DECLARATIONVIRT(TAttParticle);
+ROOT_TOBJECT_DECLARATIONVIRT(TNamed);
+ROOT_TOBJECT_DECLARATIONVIRT(TObject);
+ROOT_TPCON_DECLARATIONVIRT(TPCON);
+ROOT_TPAD_DECLARATIONVIRT(TSlider);
+ROOT_TPAD_DECLARATIONVIRT(TEvePad);
+ROOT_TPAD_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TPAD_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TPAD_DECLARATIONVIRT(TCanvas);
+ROOT_TPAD_DECLARATIONVIRT(TGroupButton);
+ROOT_TPAD_DECLARATIONVIRT(TButton);
+ROOT_TPAD_DECLARATIONVIRT(TPad);
+ROOT_TPAVE_DECLARATIONVIRT(TPaveClass);
+ROOT_TPAVE_DECLARATIONVIRT(TPaveLabel);
+ROOT_TPAVE_DECLARATIONVIRT(TLegend);
+ROOT_TPAVE_DECLARATIONVIRT(TPavesText);
+ROOT_TPAVE_DECLARATIONVIRT(TPaveStats);
+ROOT_TPAVE_DECLARATIONVIRT(TDiamond);
+ROOT_TPAVE_DECLARATIONVIRT(TPaveText);
+ROOT_TPAVE_DECLARATIONVIRT(TPave);
+ROOT_TPAVECLASS_DECLARATIONVIRT(TPaveClass);
+ROOT_TPAVELABEL_DECLARATIONVIRT(TPaveClass);
+ROOT_TPAVELABEL_DECLARATIONVIRT(TPaveLabel);
+ROOT_TPAVESTATS_DECLARATIONVIRT(TPaveStats);
+ROOT_TPAVETEXT_DECLARATIONVIRT(TPavesText);
+ROOT_TPAVETEXT_DECLARATIONVIRT(TPaveStats);
+ROOT_TPAVETEXT_DECLARATIONVIRT(TDiamond);
+ROOT_TPAVETEXT_DECLARATIONVIRT(TPaveText);
+ROOT_TPAVESTEXT_DECLARATIONVIRT(TPavesText);
+ROOT_TPOLYLINE_DECLARATIONVIRT(TCurlyArc);
+ROOT_TPOLYLINE_DECLARATIONVIRT(TCurlyLine);
+ROOT_TPOLYLINE_DECLARATIONVIRT(TPolyLine);
+ROOT_TPOLYLINESHAPE_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TQOBJECT_DECLARATIONVIRT(TRint);
+ROOT_TQOBJECT_DECLARATIONVIRT(TApplication);
+ROOT_TQOBJECT_DECLARATIONVIRT(TSlider);
+ROOT_TQOBJECT_DECLARATIONVIRT(TEvePad);
+ROOT_TQOBJECT_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TQOBJECT_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TQOBJECT_DECLARATIONVIRT(TCanvas);
+ROOT_TQOBJECT_DECLARATIONVIRT(TGroupButton);
+ROOT_TQOBJECT_DECLARATIONVIRT(TButton);
+ROOT_TQOBJECT_DECLARATIONVIRT(TPad);
+ROOT_TQOBJECT_DECLARATIONVIRT(TVirtualPad);
+ROOT_TQOBJECT_DECLARATIONVIRT(TQObject);
+ROOT_TRINT_DECLARATIONVIRT(TRint);
+ROOT_TSPHE_DECLARATIONVIRT(TSPHE);
+ROOT_TSHAPE_DECLARATIONVIRT(TXTRU);
+ROOT_TSHAPE_DECLARATIONVIRT(TSPHE);
+ROOT_TSHAPE_DECLARATIONVIRT(TPolyLineShape);
+ROOT_TSHAPE_DECLARATIONVIRT(TPCON);
+ROOT_TSHAPE_DECLARATIONVIRT(TTUBE);
+ROOT_TSHAPE_DECLARATIONVIRT(TBRIK);
+ROOT_TSHAPE_DECLARATIONVIRT(TShape);
+ROOT_TSLIDER_DECLARATIONVIRT(TSlider);
+ROOT_TSLIDERBOX_DECLARATIONVIRT(TSliderBox);
+ROOT_TTUBE_DECLARATIONVIRT(TTUBE);
+ROOT_TTEXT_DECLARATIONVIRT(TText);
+ROOT_TTEXT_DECLARATIONVIRT(TLatex);
+ROOT_TTREE_DECLARATIONVIRT(TTreeSQL);
+ROOT_TTREE_DECLARATIONVIRT(TNtupleD);
+ROOT_TTREE_DECLARATIONVIRT(TNtuple);
+ROOT_TTREE_DECLARATIONVIRT(TChain);
+ROOT_TTREE_DECLARATIONVIRT(TTree);
+ROOT_TTREEPLAYER_DECLARATIONVIRT(TTreePlayer);
+ROOT_TTREESQL_DECLARATIONVIRT(TTreeSQL);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TSlider);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TEvePad);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TInspectCanvas);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TDialogCanvas);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TCanvas);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TGroupButton);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TButton);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TPad);
+ROOT_TVIRTUALPAD_DECLARATIONVIRT(TVirtualPad);
+ROOT_TVIRTUALTREEPLAYER_DECLARATIONVIRT(TTreePlayer);
+ROOT_TVIRTUALTREEPLAYER_DECLARATIONVIRT(TVirtualTreePlayer);
+ROOT_TWBOX_DECLARATIONVIRT(TSliderBox);
+ROOT_TWBOX_DECLARATIONVIRT(TFrame);
+ROOT_TWBOX_DECLARATIONVIRT(TWbox);
+ROOT_TXTRU_DECLARATIONVIRT(TXTRU);
+
+
+ROOT_TOBJECT_DECLARATIONNONVIRT(TObject);
+
+ROOT_TNAMED_DECLARATIONNONVIRT(TNamed);
+
+ROOT_TFORMULA_DECLARATIONNONVIRT(TFormula);
+
+ROOT_TATT3D_DECLARATIONNONVIRT(TAtt3D);
+
+ROOT_TATTAXIS_DECLARATIONNONVIRT(TAttAxis);
+
+ROOT_TATTBBOX_DECLARATIONNONVIRT(TAttBBox);
+
+ROOT_TATTCANVAS_DECLARATIONNONVIRT(TAttCanvas);
+
+ROOT_TATTFILL_DECLARATIONNONVIRT(TAttFill);
+
+ROOT_TATTIMAGE_DECLARATIONNONVIRT(TAttImage);
+
+ROOT_TATTLINE_DECLARATIONNONVIRT(TAttLine);
+
+ROOT_TATTMARKER_DECLARATIONNONVIRT(TAttMarker);
+
+ROOT_TATTPAD_DECLARATIONNONVIRT(TAttPad);
+
+ROOT_TATTPARTICLE_DECLARATIONNONVIRT(TAttParticle);
+
+ROOT_TATTTEXT_DECLARATIONNONVIRT(TAttText);
+
+ROOT_THSTACK_DECLARATIONNONVIRT(THStack);
+
+ROOT_TF1_DECLARATIONNONVIRT(TF1);
+
+ROOT_TGRAPH_DECLARATIONNONVIRT(TGraph);
+
+ROOT_TGRAPHASYMMERRORS_DECLARATIONNONVIRT(TGraphAsymmErrors);
+
+ROOT_TCUTG_DECLARATIONNONVIRT(TCutG);
+
+ROOT_TGRAPHBENTERRORS_DECLARATIONNONVIRT(TGraphBentErrors);
+
+ROOT_TGRAPHERRORS_DECLARATIONNONVIRT(TGraphErrors);
+
+ROOT_TGRAPHPOLAR_DECLARATIONNONVIRT(TGraphPolar);
+
+ROOT_TGRAPHQQ_DECLARATIONNONVIRT(TGraphQQ);
+
+ROOT_TELLIPSE_DECLARATIONNONVIRT(TEllipse);
+
+ROOT_TARC_DECLARATIONNONVIRT(TArc);
+
+ROOT_TCROWN_DECLARATIONNONVIRT(TCrown);
+
+ROOT_TLINE_DECLARATIONNONVIRT(TLine);
+
+ROOT_TARROW_DECLARATIONNONVIRT(TArrow);
+
+ROOT_TGAXIS_DECLARATIONNONVIRT(TGaxis);
+
+ROOT_TSHAPE_DECLARATIONNONVIRT(TShape);
+
+ROOT_TBRIK_DECLARATIONNONVIRT(TBRIK);
+
+ROOT_TTUBE_DECLARATIONNONVIRT(TTUBE);
+
+ROOT_TPCON_DECLARATIONNONVIRT(TPCON);
+
+ROOT_TPOLYLINESHAPE_DECLARATIONNONVIRT(TPolyLineShape);
+
+ROOT_TSPHE_DECLARATIONNONVIRT(TSPHE);
+
+ROOT_TXTRU_DECLARATIONNONVIRT(TXTRU);
+
+ROOT_TBOX_DECLARATIONNONVIRT(TBox);
+
+ROOT_TPAVE_DECLARATIONNONVIRT(TPave);
+
+ROOT_TPAVETEXT_DECLARATIONNONVIRT(TPaveText);
+
+ROOT_TDIAMOND_DECLARATIONNONVIRT(TDiamond);
+
+ROOT_TPAVESTATS_DECLARATIONNONVIRT(TPaveStats);
+
+ROOT_TPAVESTEXT_DECLARATIONNONVIRT(TPavesText);
+
+ROOT_TLEGEND_DECLARATIONNONVIRT(TLegend);
+
+ROOT_TPAVELABEL_DECLARATIONNONVIRT(TPaveLabel);
+
+ROOT_TPAVECLASS_DECLARATIONNONVIRT(TPaveClass);
+
+ROOT_TWBOX_DECLARATIONNONVIRT(TWbox);
+
+ROOT_TFRAME_DECLARATIONNONVIRT(TFrame);
+
+ROOT_TSLIDERBOX_DECLARATIONNONVIRT(TSliderBox);
+
+ROOT_TTREE_DECLARATIONNONVIRT(TTree);
+
+ROOT_TCHAIN_DECLARATIONNONVIRT(TChain);
+
+ROOT_TNTUPLE_DECLARATIONNONVIRT(TNtuple);
+
+ROOT_TNTUPLED_DECLARATIONNONVIRT(TNtupleD);
+
+ROOT_TTREESQL_DECLARATIONNONVIRT(TTreeSQL);
+
+ROOT_TPOLYLINE_DECLARATIONNONVIRT(TPolyLine);
+
+ROOT_TCURLYLINE_DECLARATIONNONVIRT(TCurlyLine);
+
+ROOT_TCURLYARC_DECLARATIONNONVIRT(TCurlyArc);
+
+ROOT_TEFFICIENCY_DECLARATIONNONVIRT(TEfficiency);
+
+ROOT_TAXIS_DECLARATIONNONVIRT(TAxis);
+
+ROOT_TLATEX_DECLARATIONNONVIRT(TLatex);
+
+ROOT_TTEXT_DECLARATIONNONVIRT(TText);
+
+ROOT_TDIRECTORY_DECLARATIONNONVIRT(TDirectory);
+
+ROOT_TDIRECTORYFILE_DECLARATIONNONVIRT(TDirectoryFile);
+
+ROOT_TFILE_DECLARATIONNONVIRT(TFile);
+
+ROOT_TBRANCH_DECLARATIONNONVIRT(TBranch);
+
+ROOT_TVIRTUALTREEPLAYER_DECLARATIONNONVIRT(TVirtualTreePlayer);
+
+ROOT_TTREEPLAYER_DECLARATIONNONVIRT(TTreePlayer);
+
+ROOT_TARRAY_DECLARATIONNONVIRT(TArray);
+
+ROOT_TARRAYC_DECLARATIONNONVIRT(TArrayC);
+
+ROOT_TARRAYD_DECLARATIONNONVIRT(TArrayD);
+
+ROOT_TARRAYF_DECLARATIONNONVIRT(TArrayF);
+
+ROOT_TARRAYI_DECLARATIONNONVIRT(TArrayI);
+
+ROOT_TARRAYL_DECLARATIONNONVIRT(TArrayL);
+
+ROOT_TARRAYL64_DECLARATIONNONVIRT(TArrayL64);
+
+ROOT_TARRAYS_DECLARATIONNONVIRT(TArrayS);
+
+ROOT_TH1_DECLARATIONNONVIRT(TH1);
+
+ROOT_TH2_DECLARATIONNONVIRT(TH2);
+
+ROOT_TH3_DECLARATIONNONVIRT(TH3);
+
+ROOT_TH1C_DECLARATIONNONVIRT(TH1C);
+
+ROOT_TH1D_DECLARATIONNONVIRT(TH1D);
+
+ROOT_TH1F_DECLARATIONNONVIRT(TH1F);
+
+ROOT_TH1I_DECLARATIONNONVIRT(TH1I);
+
+ROOT_TH1S_DECLARATIONNONVIRT(TH1S);
+
+ROOT_TH2C_DECLARATIONNONVIRT(TH2C);
+
+ROOT_TH2D_DECLARATIONNONVIRT(TH2D);
+
+ROOT_TH2F_DECLARATIONNONVIRT(TH2F);
+
+ROOT_TH2I_DECLARATIONNONVIRT(TH2I);
+
+ROOT_TH2POLY_DECLARATIONNONVIRT(TH2Poly);
+
+ROOT_TH2S_DECLARATIONNONVIRT(TH2S);
+
+ROOT_TH3C_DECLARATIONNONVIRT(TH3C);
+
+ROOT_TH3D_DECLARATIONNONVIRT(TH3D);
+
+ROOT_TH3F_DECLARATIONNONVIRT(TH3F);
+
+ROOT_TH3I_DECLARATIONNONVIRT(TH3I);
+
+ROOT_TH3S_DECLARATIONNONVIRT(TH3S);
+
+ROOT_TQOBJECT_DECLARATIONNONVIRT(TQObject);
+
+ROOT_TVIRTUALPAD_DECLARATIONNONVIRT(TVirtualPad);
+
+ROOT_TPAD_DECLARATIONNONVIRT(TPad);
+
+ROOT_TBUTTON_DECLARATIONNONVIRT(TButton);
+
+ROOT_TGROUPBUTTON_DECLARATIONNONVIRT(TGroupButton);
+
+ROOT_TCANVAS_DECLARATIONNONVIRT(TCanvas);
+
+ROOT_TDIALOGCANVAS_DECLARATIONNONVIRT(TDialogCanvas);
+
+ROOT_TINSPECTCANVAS_DECLARATIONNONVIRT(TInspectCanvas);
+
+ROOT_TEVEPAD_DECLARATIONNONVIRT(TEvePad);
+
+ROOT_TSLIDER_DECLARATIONNONVIRT(TSlider);
+
+ROOT_TAPPLICATION_DECLARATIONNONVIRT(TApplication);
+
+ROOT_TRINT_DECLARATIONNONVIRT(TRint);
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/csrc/addon.cpp b/csrc/addon.cpp
new file mode 100644
--- /dev/null
+++ b/csrc/addon.cpp
@@ -0,0 +1,24 @@
+#include "HROOT.h"
+#include "addon.h"
+
+#include "TF1.h"
+#include "TCanvas.h"
+#include "TH1F.h"
+
+
+using namespace std;
+
+
+template<class ToType, class FromType>
+const ToType* to_const(const FromType* x) {
+  return reinterpret_cast<const ToType*>(x);
+}
+
+template<class ToType, class FromType>
+ToType* to_nonconst(FromType* x) {
+  return reinterpret_cast<ToType*>(x);
+}
+
+// New Functions : I will automate them later .
+
+
diff --git a/csrc/addon.h b/csrc/addon.h
new file mode 100644
--- /dev/null
+++ b/csrc/addon.h
@@ -0,0 +1,9 @@
+#ifdef __cplusplus
+extern "C" { 
+#endif 
+
+#include "HROOT.h"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/example/histadd.hs b/example/histadd.hs
new file mode 100644
--- /dev/null
+++ b/example/histadd.hs
@@ -0,0 +1,40 @@
+module Main where
+
+import Data.Random
+import Data.Random.Distribution.Normal
+
+import HROOT.Type
+import HROOT.Class
+import HROOT.AddOn
+
+main = do 
+  tcanvas <- newTCanvas "test" "test" 640 480
+  
+  h1 <- newTH1F "test" "test" 100 (-10.0) 10.0  
+  h2 <- newTH1F "test" "test" 100 (-10.0) 10.0 
+  
+  let dist1 = Normal (0 :: Double) (2 :: Double) 
+      dist2 = Normal (3 :: Double) (1 :: Double)
+  let go n | n < 0 = return () 
+           | otherwise = do 
+               histfill dist1 h1 
+               histfill dist2 h2 
+               go (n-1)
+  go 1000000 
+ 
+  add h1 h2 1.0 
+ 
+  draw h1 ""   
+
+  saveAs tcanvas "histadd.pdf" "" 
+  saveAs tcanvas "histadd.jpg" ""
+  saveAs tcanvas "histadd.png" ""
+  return () 
+
+          
+histfill :: Normal Double -> TH1F -> IO () 
+histfill dist hist = do 
+  x <- sample dist 
+  fill1 hist x 
+  return () 
+
diff --git a/example/random1d.hs b/example/random1d.hs
new file mode 100644
--- /dev/null
+++ b/example/random1d.hs
@@ -0,0 +1,35 @@
+module Main where
+
+import Control.Monad
+
+import Data.Random 
+import Data.Random.Distribution.Normal
+
+import HROOT.Type
+import HROOT.Class 
+import HROOT.AddOn
+
+main :: IO () 
+main = do 
+  tcanvas <- newTCanvas "Test" "Test" 640 480
+  h1 <- newTH1F "test" "test" 100 (-5.0) 5.0 
+
+  let dist = (Normal (0 :: Double) (2 :: Double)) 
+
+  let go n | n < 0 = return () 
+           | otherwise = do 
+               histfill dist h1
+               go (n-1) 
+
+  go 1000000
+  draw h1 ""
+  saveAs tcanvas "random1d.pdf" ""
+  saveAs tcanvas "random1d.jpg" "" 
+  saveAs tcanvas "random1d.png" "" 
+
+
+histfill :: Normal Double -> TH1F ->  IO () 
+histfill dist hist = do 
+  x <- sample dist 
+  fill1 hist x
+  return () 
diff --git a/example/random2d.hs b/example/random2d.hs
new file mode 100644
--- /dev/null
+++ b/example/random2d.hs
@@ -0,0 +1,38 @@
+module Main where
+
+import Control.Monad
+
+import Data.Random 
+import Data.Random.Distribution.Normal
+
+import HROOT.Type
+import HROOT.Class 
+import HROOT.AddOn
+
+main :: IO () 
+main = do 
+  tcanvas <- newTCanvas "Test" "Test" 640 480
+  h2 <- newTH2F "test" "test" 100 (-5.0) 5.0 100 (-5.0) 5.0 
+
+  let dist1 = Normal (0 :: Double) (2 :: Double)
+      dist2 = Normal (0 :: Double) (2 :: Double)
+
+  let go n | n < 0 = return () 
+           | otherwise = do 
+               histfill dist1 dist2 h2
+               go (n-1) 
+
+  go 1000000
+  draw h2 "lego"
+  saveAs tcanvas "random2d.pdf" ""
+  saveAs tcanvas "random2d.jpg" "" 
+  saveAs tcanvas "random2d.png" ""
+
+
+
+histfill :: Normal Double -> Normal Double-> TH2F ->  IO () 
+histfill dist1 dist2 hist = do 
+  x <- sample dist1
+  y <- sample dist2
+  fill2 hist x y 
+  return () 
diff --git a/example/random2dApp.hs b/example/random2dApp.hs
new file mode 100644
--- /dev/null
+++ b/example/random2dApp.hs
@@ -0,0 +1,36 @@
+module Main where
+
+import Control.Monad
+
+import Data.Random 
+import Data.Random.Distribution.Normal
+
+import HROOT.Type
+import HROOT.Class 
+import HROOT.AddOn
+
+main :: IO () 
+main = do 
+
+  tapp <- newTApplication "test" [0] ["test"]
+  tcanvas <- newTCanvas "Test" "Test" 640 480
+  h2 <- newTH2F "test" "test" 100 (-5.0) 5.0 100 (-5.0) 5.0 
+
+  let dist1 = Normal (0 :: Double) (2 :: Double)
+      dist2 = Normal (0 :: Double) (2 :: Double)
+
+  let go n | n < 0 = return () 
+           | otherwise = do 
+               histfill dist1 dist2 h2
+               go (n-1) 
+
+  go 1000000
+  draw h2 "lego"
+  run tapp 1 
+
+histfill :: Normal Double -> Normal Double-> TH2F ->  IO () 
+histfill dist1 dist2 hist = do 
+  x <- sample dist1
+  y <- sample dist2
+  fill2 hist x y 
+  return () 
diff --git a/example/saveAsROOT.hs b/example/saveAsROOT.hs
new file mode 100644
--- /dev/null
+++ b/example/saveAsROOT.hs
@@ -0,0 +1,24 @@
+module Main where
+
+import HROOT.Type
+import HROOT.Class
+import HROOT.AddOn
+
+main = do 
+  tcanvas <- newTCanvas "test" "test" 640 480
+  h1 <- newTH1F "test" "test" 100 1 10
+  h2 <- newTH1F "test" "test" 100 1 10 
+  
+  fill1 h1 5 
+  fill1 h2 6
+  
+  add h1 h2 1.0
+  
+  draw h1 "" 
+
+  tfile <- newTFile "test.root" "NEW" "" 1   
+  write h1 "" 0 0 
+  close tfile ""
+
+
+          
diff --git a/src/HROOT.hs b/src/HROOT.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT.hs
@@ -0,0 +1,37 @@
+-- | @HROOT@: a low-level binding to ROOT in haskell. 
+--
+--   For @ROOT@, please refer to <http://root.cern.ch>.
+-- The following is a copy of its description in @ROOT@ homepage.
+--
+-- * The @ROOT@ system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data. Included are histograming methods in an arbitrary number of dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode, as well as a general parallel processing framework, @PROOF@, that can considerably speed up an analysis.
+-- Thanks to the built-in @CINT@ C++ interpreter the command language, the scripting, or macro, language and the programming language are all C++. The interpreter allows for fast prototyping of the macros since it removes the, time consuming, compile/link cycle. It also provides a good environment to learn C++. If more performance is needed the interactively developed macros can be compiled using a C++ compiler via a machine independent transparent compiler interface called @ACliC@.
+-- The system has been designed in such a way that it can query its databases in parallel on clusters of workstations or many-core machines. @ROOT@za is an open system that can be dynamically extended by linking external libraries. This makes @ROOT@ a premier platform on which to build data acquisition, simulation and data analysis systems.
+-- @ROOT@ is available under the @LGPL@ license.
+--
+-- 
+-- 
+--   You can download @ROOT@ package and install in your local directory or 
+--   in global directory. For local installation, 
+--   You need to set environmental variable @ROOTSYS@ to the home directory
+--   of ROOT and include @$ROOTSYS\/bin@ and @$ROOTSYS\/lib@ in your @PATH@ and 
+--   @LD_LIBRARY_PATH@ or @DYLD_LIBRARY_PATH@ for @ROOT@ to work, respectively. 
+--
+--   HROOT package can be installed without ROOT, but it won't work. 
+--   Examples are in example directory in the package.
+--   Some examples are using @random-fu@ package. 
+
+
+module HROOT (
+  module HROOT.Type,
+  module HROOT.Class,
+  module HROOT.Function, 
+  module HROOT.AddOn
+) where
+
+
+
+import HROOT.Type
+import HROOT.Class
+import HROOT.Function
+import HROOT.AddOn 
+
diff --git a/src/HROOT/AddOn.hs b/src/HROOT/AddOn.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT/AddOn.hs
@@ -0,0 +1,2 @@
+module HROOT.AddOn where
+
diff --git a/src/HROOT/AddOnFunction.hsc b/src/HROOT/AddOnFunction.hsc
new file mode 100644
--- /dev/null
+++ b/src/HROOT/AddOnFunction.hsc
@@ -0,0 +1,4 @@
+module HROOT.AddOnFunction where
+
+#include "addon.h"
+ 
diff --git a/src/HROOT/Class.hs b/src/HROOT/Class.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Class.hs
@@ -0,0 +1,2574 @@
+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
+             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
+             EmptyDataDecls, IncoherentInstances #-}
+
+
+module HROOT.Class where
+
+import Foreign.C            
+import Foreign.Ptr
+import Foreign.ForeignPtr
+
+import System.IO.Unsafe
+
+import HROOT.Type
+import HROOT.Function
+
+class ITObject a where
+    getName :: a -> IO String 
+    draw :: a -> String -> IO () 
+    saveAs :: a -> String -> String -> IO () 
+    write :: a -> String -> Int -> Int -> IO Int 
+
+class ITNamed a where
+    setTitle :: a -> String -> IO () 
+
+class ITFormula a where
+    getParameter :: a -> Int -> IO Double 
+    setParameter :: a -> Int -> Double -> IO () 
+
+class ITAtt3D a where
+
+class ITAttAxis a where
+    setLabelColor :: a -> Int -> IO () 
+    setLabelSize :: a -> Double -> IO () 
+    setTickLength :: a -> Double -> IO () 
+    setTitleOffset :: a -> Double -> IO () 
+    setNdivisions :: a -> Int -> Int -> IO () 
+
+class ITAttBBox a where
+
+class ITAttCanvas a where
+
+class ITAttFill a where
+    setFillColor :: a -> Int -> IO () 
+    setFillStyle :: a -> Int -> IO () 
+
+class ITAttImage a where
+
+class ITAttLine a where
+    setLineColor :: a -> Int -> IO () 
+
+class ITAttMarker a where
+
+class ITAttPad a where
+
+class ITAttParticle a where
+
+class ITAttText a where
+    setTextColor :: a -> Int -> IO () 
+    setTextAlign :: a -> Int -> IO () 
+    setTextSize :: a -> Double -> IO () 
+
+class ITHStack a where
+
+class ITF1 a where
+
+class ITGraph a where
+
+class ITGraphAsymmErrors a where
+
+class ITCutG a where
+
+class ITGraphBentErrors a where
+
+class ITGraphErrors a where
+
+class ITGraphPolar a where
+
+class ITGraphQQ a where
+
+class ITEllipse a where
+
+class ITArc a where
+
+class ITCrown a where
+
+class ITLine a where
+
+class ITArrow a where
+
+class ITGaxis a where
+
+class ITShape a where
+
+class ITBRIK a where
+
+class ITTUBE a where
+
+class ITPCON a where
+
+class ITPolyLineShape a where
+
+class ITSPHE a where
+
+class ITXTRU a where
+
+class ITBox a where
+
+class ITPave a where
+
+class ITPaveText a where
+
+class ITDiamond a where
+
+class ITPaveStats a where
+
+class ITPavesText a where
+
+class ITLegend a where
+
+class ITPaveLabel a where
+
+class ITPaveClass a where
+
+class ITWbox a where
+    setBorderMode :: a -> Int -> IO () 
+
+class ITFrame a where
+
+class ITSliderBox a where
+
+class ITTree a where
+
+class ITChain a where
+
+class ITNtuple a where
+
+class ITNtupleD a where
+
+class ITTreeSQL a where
+
+class ITPolyLine a where
+
+class ITCurlyLine a where
+
+class ITCurlyArc a where
+
+class ITEfficiency a where
+
+class ITAxis a where
+
+class ITLatex a where
+
+class ITText a where
+
+class ITDirectory a where
+    close :: a -> String -> IO () 
+
+class ITDirectoryFile a where
+
+class ITFile a where
+
+class ITBranch a where
+
+class ITVirtualTreePlayer a where
+
+class ITTreePlayer a where
+
+class ITArray a where
+
+class ITArrayC a where
+
+class ITArrayD a where
+
+class ITArrayF a where
+
+class ITArrayI a where
+
+class ITArrayL a where
+
+class ITArrayL64 a where
+
+class ITArrayS a where
+
+class ITH1 a where
+    getXaxis :: a -> IO TAxis 
+    getYaxis :: a -> IO TAxis 
+    getZaxis :: a -> IO TAxis 
+    add :: (ITH1 c0, FPtr c0) => a -> c0 -> Double -> IO () 
+    fill1 :: a -> Double -> IO Int 
+
+class ITH2 a where
+    fill2 :: a -> Double -> Double -> IO Int 
+
+class ITH3 a where
+
+class ITH1C a where
+
+class ITH1D a where
+
+class ITH1F a where
+
+class ITH1I a where
+
+class ITH1S a where
+
+class ITH2C a where
+
+class ITH2D a where
+
+class ITH2F a where
+
+class ITH2I a where
+
+class ITH2Poly a where
+
+class ITH2S a where
+
+class ITH3C a where
+
+class ITH3D a where
+
+class ITH3F a where
+
+class ITH3I a where
+
+class ITH3S a where
+
+class ITQObject a where
+
+class ITVirtualPad a where
+    getFrame :: a -> IO TFrame 
+    range :: a -> Double -> Double -> Double -> Double -> IO () 
+
+class ITPad a where
+
+class ITButton a where
+
+class ITGroupButton a where
+
+class ITCanvas a where
+
+class ITDialogCanvas a where
+
+class ITInspectCanvas a where
+
+class ITEvePad a where
+
+class ITSlider a where
+
+class ITApplication a where
+    run :: a -> Int -> IO () 
+
+class ITRint a where
+
+instance (ITObject a, FPtr a) => Castable a (Ptr RawTObject) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNamed a, FPtr a) => Castable a (Ptr RawTNamed) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFormula a, FPtr a) => Castable a (Ptr RawTFormula) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAtt3D a, FPtr a) => Castable a (Ptr RawTAtt3D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttAxis a, FPtr a) => Castable a (Ptr RawTAttAxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttBBox a, FPtr a) => Castable a (Ptr RawTAttBBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttCanvas a, FPtr a) => Castable a (Ptr RawTAttCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttFill a, FPtr a) => Castable a (Ptr RawTAttFill) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttImage a, FPtr a) => Castable a (Ptr RawTAttImage) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttLine a, FPtr a) => Castable a (Ptr RawTAttLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttMarker a, FPtr a) => Castable a (Ptr RawTAttMarker) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttPad a, FPtr a) => Castable a (Ptr RawTAttPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttParticle a, FPtr a) => Castable a (Ptr RawTAttParticle) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAttText a, FPtr a) => Castable a (Ptr RawTAttText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITHStack a, FPtr a) => Castable a (Ptr RawTHStack) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITF1 a, FPtr a) => Castable a (Ptr RawTF1) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraph a, FPtr a) => Castable a (Ptr RawTGraph) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphAsymmErrors a, FPtr a) => Castable a (Ptr RawTGraphAsymmErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCutG a, FPtr a) => Castable a (Ptr RawTCutG) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphBentErrors a, FPtr a) => Castable a (Ptr RawTGraphBentErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphErrors a, FPtr a) => Castable a (Ptr RawTGraphErrors) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphPolar a, FPtr a) => Castable a (Ptr RawTGraphPolar) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGraphQQ a, FPtr a) => Castable a (Ptr RawTGraphQQ) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEllipse a, FPtr a) => Castable a (Ptr RawTEllipse) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArc a, FPtr a) => Castable a (Ptr RawTArc) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCrown a, FPtr a) => Castable a (Ptr RawTCrown) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLine a, FPtr a) => Castable a (Ptr RawTLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrow a, FPtr a) => Castable a (Ptr RawTArrow) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGaxis a, FPtr a) => Castable a (Ptr RawTGaxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITShape a, FPtr a) => Castable a (Ptr RawTShape) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBRIK a, FPtr a) => Castable a (Ptr RawTBRIK) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTUBE a, FPtr a) => Castable a (Ptr RawTTUBE) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPCON a, FPtr a) => Castable a (Ptr RawTPCON) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPolyLineShape a, FPtr a) => Castable a (Ptr RawTPolyLineShape) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSPHE a, FPtr a) => Castable a (Ptr RawTSPHE) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITXTRU a, FPtr a) => Castable a (Ptr RawTXTRU) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBox a, FPtr a) => Castable a (Ptr RawTBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPave a, FPtr a) => Castable a (Ptr RawTPave) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveText a, FPtr a) => Castable a (Ptr RawTPaveText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDiamond a, FPtr a) => Castable a (Ptr RawTDiamond) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveStats a, FPtr a) => Castable a (Ptr RawTPaveStats) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPavesText a, FPtr a) => Castable a (Ptr RawTPavesText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLegend a, FPtr a) => Castable a (Ptr RawTLegend) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveLabel a, FPtr a) => Castable a (Ptr RawTPaveLabel) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPaveClass a, FPtr a) => Castable a (Ptr RawTPaveClass) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITWbox a, FPtr a) => Castable a (Ptr RawTWbox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFrame a, FPtr a) => Castable a (Ptr RawTFrame) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSliderBox a, FPtr a) => Castable a (Ptr RawTSliderBox) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTree a, FPtr a) => Castable a (Ptr RawTTree) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITChain a, FPtr a) => Castable a (Ptr RawTChain) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNtuple a, FPtr a) => Castable a (Ptr RawTNtuple) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITNtupleD a, FPtr a) => Castable a (Ptr RawTNtupleD) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTreeSQL a, FPtr a) => Castable a (Ptr RawTTreeSQL) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPolyLine a, FPtr a) => Castable a (Ptr RawTPolyLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCurlyLine a, FPtr a) => Castable a (Ptr RawTCurlyLine) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCurlyArc a, FPtr a) => Castable a (Ptr RawTCurlyArc) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEfficiency a, FPtr a) => Castable a (Ptr RawTEfficiency) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITAxis a, FPtr a) => Castable a (Ptr RawTAxis) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITLatex a, FPtr a) => Castable a (Ptr RawTLatex) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITText a, FPtr a) => Castable a (Ptr RawTText) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDirectory a, FPtr a) => Castable a (Ptr RawTDirectory) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDirectoryFile a, FPtr a) => Castable a (Ptr RawTDirectoryFile) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITFile a, FPtr a) => Castable a (Ptr RawTFile) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITBranch a, FPtr a) => Castable a (Ptr RawTBranch) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITVirtualTreePlayer a, FPtr a) => Castable a (Ptr RawTVirtualTreePlayer) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITTreePlayer a, FPtr a) => Castable a (Ptr RawTTreePlayer) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArray a, FPtr a) => Castable a (Ptr RawTArray) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayC a, FPtr a) => Castable a (Ptr RawTArrayC) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayD a, FPtr a) => Castable a (Ptr RawTArrayD) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayF a, FPtr a) => Castable a (Ptr RawTArrayF) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayI a, FPtr a) => Castable a (Ptr RawTArrayI) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayL a, FPtr a) => Castable a (Ptr RawTArrayL) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayL64 a, FPtr a) => Castable a (Ptr RawTArrayL64) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITArrayS a, FPtr a) => Castable a (Ptr RawTArrayS) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1 a, FPtr a) => Castable a (Ptr RawTH1) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2 a, FPtr a) => Castable a (Ptr RawTH2) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3 a, FPtr a) => Castable a (Ptr RawTH3) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1C a, FPtr a) => Castable a (Ptr RawTH1C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1D a, FPtr a) => Castable a (Ptr RawTH1D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1F a, FPtr a) => Castable a (Ptr RawTH1F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1I a, FPtr a) => Castable a (Ptr RawTH1I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH1S a, FPtr a) => Castable a (Ptr RawTH1S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2C a, FPtr a) => Castable a (Ptr RawTH2C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2D a, FPtr a) => Castable a (Ptr RawTH2D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2F a, FPtr a) => Castable a (Ptr RawTH2F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2I a, FPtr a) => Castable a (Ptr RawTH2I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2Poly a, FPtr a) => Castable a (Ptr RawTH2Poly) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH2S a, FPtr a) => Castable a (Ptr RawTH2S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3C a, FPtr a) => Castable a (Ptr RawTH3C) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3D a, FPtr a) => Castable a (Ptr RawTH3D) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3F a, FPtr a) => Castable a (Ptr RawTH3F) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3I a, FPtr a) => Castable a (Ptr RawTH3I) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITH3S a, FPtr a) => Castable a (Ptr RawTH3S) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITQObject a, FPtr a) => Castable a (Ptr RawTQObject) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITVirtualPad a, FPtr a) => Castable a (Ptr RawTVirtualPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITPad a, FPtr a) => Castable a (Ptr RawTPad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITButton a, FPtr a) => Castable a (Ptr RawTButton) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITGroupButton a, FPtr a) => Castable a (Ptr RawTGroupButton) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITCanvas a, FPtr a) => Castable a (Ptr RawTCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITDialogCanvas a, FPtr a) => Castable a (Ptr RawTDialogCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITInspectCanvas a, FPtr a) => Castable a (Ptr RawTInspectCanvas) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITEvePad a, FPtr a) => Castable a (Ptr RawTEvePad) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITSlider a, FPtr a) => Castable a (Ptr RawTSlider) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITApplication a, FPtr a) => Castable a (Ptr RawTApplication) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance (ITRint a, FPtr a) => Castable a (Ptr RawTRint) where
+  cast = unsafeForeignPtrToPtr . castForeignPtr . get_fptr
+  uncast = cast_fptr_to_obj . castForeignPtr . unsafePerformIO . newForeignPtr_ 
+
+instance ITObject TObject where
+  getName = xform0 c_tobject_getname
+  draw = xform1 c_tobject_draw
+  saveAs = xform2 c_tobject_saveas
+  write = xform3 c_tobject_write
+
+instance ITNamed TNamed where
+  setTitle = xform1 c_tnamed_settitle
+
+instance ITFormula TFormula where
+  getParameter = xform1 c_tformula_getparameter
+  setParameter = xform2 c_tformula_setparameter
+
+instance ITAtt3D TAtt3D where
+
+instance ITAttAxis TAttAxis where
+  setLabelColor = xform1 c_tattaxis_setlabelcolor
+  setLabelSize = xform1 c_tattaxis_setlabelsize
+  setTickLength = xform1 c_tattaxis_setticklength
+  setTitleOffset = xform1 c_tattaxis_settitleoffset
+  setNdivisions = xform2 c_tattaxis_setndivisions
+
+instance ITAttBBox TAttBBox where
+
+instance ITAttCanvas TAttCanvas where
+
+instance ITAttFill TAttFill where
+  setFillColor = xform1 c_tattfill_setfillcolor
+  setFillStyle = xform1 c_tattfill_setfillstyle
+
+instance ITAttImage TAttImage where
+
+instance ITAttLine TAttLine where
+  setLineColor = xform1 c_tattline_setlinecolor
+
+instance ITAttMarker TAttMarker where
+
+instance ITAttPad TAttPad where
+
+instance ITAttParticle TAttParticle where
+
+instance ITAttText TAttText where
+  setTextColor = xform1 c_tatttext_settextcolor
+  setTextAlign = xform1 c_tatttext_settextalign
+  setTextSize = xform1 c_tatttext_settextsize
+
+instance ITHStack THStack where
+
+instance ITF1 TF1 where
+
+instance ITGraph TGraph where
+
+instance ITGraphAsymmErrors TGraphAsymmErrors where
+
+instance ITCutG TCutG where
+
+instance ITGraphBentErrors TGraphBentErrors where
+
+instance ITGraphErrors TGraphErrors where
+
+instance ITGraphPolar TGraphPolar where
+
+instance ITGraphQQ TGraphQQ where
+
+instance ITEllipse TEllipse where
+
+instance ITArc TArc where
+
+instance ITCrown TCrown where
+
+instance ITLine TLine where
+
+instance ITArrow TArrow where
+
+instance ITGaxis TGaxis where
+
+instance ITShape TShape where
+
+instance ITBRIK TBRIK where
+
+instance ITTUBE TTUBE where
+
+instance ITPCON TPCON where
+
+instance ITPolyLineShape TPolyLineShape where
+
+instance ITSPHE TSPHE where
+
+instance ITXTRU TXTRU where
+
+instance ITBox TBox where
+
+instance ITPave TPave where
+
+instance ITPaveText TPaveText where
+
+instance ITDiamond TDiamond where
+
+instance ITPaveStats TPaveStats where
+
+instance ITPavesText TPavesText where
+
+instance ITLegend TLegend where
+
+instance ITPaveLabel TPaveLabel where
+
+instance ITPaveClass TPaveClass where
+
+instance ITWbox TWbox where
+  setBorderMode = xform1 c_twbox_setbordermode
+
+instance ITFrame TFrame where
+
+instance ITSliderBox TSliderBox where
+
+instance ITTree TTree where
+
+instance ITChain TChain where
+
+instance ITNtuple TNtuple where
+
+instance ITNtupleD TNtupleD where
+
+instance ITTreeSQL TTreeSQL where
+
+instance ITPolyLine TPolyLine where
+
+instance ITCurlyLine TCurlyLine where
+
+instance ITCurlyArc TCurlyArc where
+
+instance ITEfficiency TEfficiency where
+
+instance ITAxis TAxis where
+
+instance ITLatex TLatex where
+
+instance ITText TText where
+
+instance ITDirectory TDirectory where
+  close = xform1 c_tdirectory_close
+
+instance ITDirectoryFile TDirectoryFile where
+
+instance ITFile TFile where
+
+instance ITBranch TBranch where
+
+instance ITVirtualTreePlayer TVirtualTreePlayer where
+
+instance ITTreePlayer TTreePlayer where
+
+instance ITArray TArray where
+
+instance ITArrayC TArrayC where
+
+instance ITArrayD TArrayD where
+
+instance ITArrayF TArrayF where
+
+instance ITArrayI TArrayI where
+
+instance ITArrayL TArrayL where
+
+instance ITArrayL64 TArrayL64 where
+
+instance ITArrayS TArrayS where
+
+instance ITH1 TH1 where
+  getXaxis = xform0 c_th1_getxaxis
+  getYaxis = xform0 c_th1_getyaxis
+  getZaxis = xform0 c_th1_getzaxis
+  add = xform2 c_th1_add
+  fill1 = xform1 c_th1_fill1
+
+instance ITH2 TH2 where
+  fill2 = xform2 c_th2_fill2
+
+instance ITH3 TH3 where
+
+instance ITH1C TH1C where
+
+instance ITH1D TH1D where
+
+instance ITH1F TH1F where
+
+instance ITH1I TH1I where
+
+instance ITH1S TH1S where
+
+instance ITH2C TH2C where
+
+instance ITH2D TH2D where
+
+instance ITH2F TH2F where
+
+instance ITH2I TH2I where
+
+instance ITH2Poly TH2Poly where
+
+instance ITH2S TH2S where
+
+instance ITH3C TH3C where
+
+instance ITH3D TH3D where
+
+instance ITH3F TH3F where
+
+instance ITH3I TH3I where
+
+instance ITH3S TH3S where
+
+instance ITQObject TQObject where
+
+instance ITVirtualPad TVirtualPad where
+  getFrame = xform0 c_tvirtualpad_getframe
+  range = xform4 c_tvirtualpad_range
+
+instance ITPad TPad where
+
+instance ITButton TButton where
+
+instance ITGroupButton TGroupButton where
+
+instance ITCanvas TCanvas where
+
+instance ITDialogCanvas TDialogCanvas where
+
+instance ITInspectCanvas TInspectCanvas where
+
+instance ITEvePad TEvePad where
+
+instance ITSlider TSlider where
+
+instance ITApplication TApplication where
+  run = xform1 c_tapplication_run
+
+instance ITRint TRint where
+
+instance ITApplication TRint where
+  run = xform1 c_trint_run
+
+instance ITArray TH3S where
+instance ITArray TH3I where
+instance ITArray TH3F where
+instance ITArray TH3D where
+instance ITArray TH3C where
+instance ITArray TH2S where
+instance ITArray TH2I where
+instance ITArray TH2F where
+instance ITArray TH2D where
+instance ITArray TH2C where
+instance ITArray TH1S where
+instance ITArray TH1I where
+instance ITArray TH1F where
+instance ITArray TH1D where
+instance ITArray TH1C where
+instance ITArray TArrayS where
+instance ITArray TArrayL64 where
+instance ITArray TArrayL where
+instance ITArray TArrayI where
+instance ITArray TArrayF where
+instance ITArray TArrayD where
+instance ITArray TArrayC where
+
+instance ITArrayC TH3C where
+instance ITArrayC TH2C where
+instance ITArrayC TH1C where
+
+instance ITArrayD TH3D where
+instance ITArrayD TH2D where
+instance ITArrayD TH1D where
+
+instance ITArrayF TH3F where
+instance ITArrayF TH2F where
+instance ITArrayF TH1F where
+
+instance ITArrayI TH3I where
+instance ITArrayI TH2I where
+instance ITArrayI TH1I where
+
+instance ITArrayS TH3S where
+instance ITArrayS TH2S where
+instance ITArrayS TH1S where
+
+instance ITAtt3D TH3S where
+instance ITAtt3D TH3I where
+instance ITAtt3D TH3F where
+instance ITAtt3D TH3D where
+instance ITAtt3D TH3C where
+instance ITAtt3D TH3 where
+instance ITAtt3D TXTRU where
+instance ITAtt3D TSPHE where
+instance ITAtt3D TPolyLineShape where
+instance ITAtt3D TPCON where
+instance ITAtt3D TTUBE where
+instance ITAtt3D TBRIK where
+instance ITAtt3D TShape where
+
+instance ITAttAxis TAxis where
+  setLabelColor = xform1 c_taxis_setlabelcolor
+  setLabelSize = xform1 c_taxis_setlabelsize
+  setTickLength = xform1 c_taxis_setticklength
+  setTitleOffset = xform1 c_taxis_settitleoffset
+  setNdivisions = xform2 c_taxis_setndivisions
+
+instance ITAttFill TSlider where
+  setFillColor = xform1 c_tslider_setfillcolor
+  setFillStyle = xform1 c_tslider_setfillstyle
+instance ITAttFill TEvePad where
+  setFillColor = xform1 c_tevepad_setfillcolor
+  setFillStyle = xform1 c_tevepad_setfillstyle
+instance ITAttFill TInspectCanvas where
+  setFillColor = xform1 c_tinspectcanvas_setfillcolor
+  setFillStyle = xform1 c_tinspectcanvas_setfillstyle
+instance ITAttFill TDialogCanvas where
+  setFillColor = xform1 c_tdialogcanvas_setfillcolor
+  setFillStyle = xform1 c_tdialogcanvas_setfillstyle
+instance ITAttFill TCanvas where
+  setFillColor = xform1 c_tcanvas_setfillcolor
+  setFillStyle = xform1 c_tcanvas_setfillstyle
+instance ITAttFill TGroupButton where
+  setFillColor = xform1 c_tgroupbutton_setfillcolor
+  setFillStyle = xform1 c_tgroupbutton_setfillstyle
+instance ITAttFill TButton where
+  setFillColor = xform1 c_tbutton_setfillcolor
+  setFillStyle = xform1 c_tbutton_setfillstyle
+instance ITAttFill TPad where
+  setFillColor = xform1 c_tpad_setfillcolor
+  setFillStyle = xform1 c_tpad_setfillstyle
+instance ITAttFill TVirtualPad where
+  setFillColor = xform1 c_tvirtualpad_setfillcolor
+  setFillStyle = xform1 c_tvirtualpad_setfillstyle
+instance ITAttFill TH3S where
+  setFillColor = xform1 c_th3s_setfillcolor
+  setFillStyle = xform1 c_th3s_setfillstyle
+instance ITAttFill TH3I where
+  setFillColor = xform1 c_th3i_setfillcolor
+  setFillStyle = xform1 c_th3i_setfillstyle
+instance ITAttFill TH3F where
+  setFillColor = xform1 c_th3f_setfillcolor
+  setFillStyle = xform1 c_th3f_setfillstyle
+instance ITAttFill TH3D where
+  setFillColor = xform1 c_th3d_setfillcolor
+  setFillStyle = xform1 c_th3d_setfillstyle
+instance ITAttFill TH3C where
+  setFillColor = xform1 c_th3c_setfillcolor
+  setFillStyle = xform1 c_th3c_setfillstyle
+instance ITAttFill TH2S where
+  setFillColor = xform1 c_th2s_setfillcolor
+  setFillStyle = xform1 c_th2s_setfillstyle
+instance ITAttFill TH2Poly where
+  setFillColor = xform1 c_th2poly_setfillcolor
+  setFillStyle = xform1 c_th2poly_setfillstyle
+instance ITAttFill TH2I where
+  setFillColor = xform1 c_th2i_setfillcolor
+  setFillStyle = xform1 c_th2i_setfillstyle
+instance ITAttFill TH2F where
+  setFillColor = xform1 c_th2f_setfillcolor
+  setFillStyle = xform1 c_th2f_setfillstyle
+instance ITAttFill TH2D where
+  setFillColor = xform1 c_th2d_setfillcolor
+  setFillStyle = xform1 c_th2d_setfillstyle
+instance ITAttFill TH2C where
+  setFillColor = xform1 c_th2c_setfillcolor
+  setFillStyle = xform1 c_th2c_setfillstyle
+instance ITAttFill TH1S where
+  setFillColor = xform1 c_th1s_setfillcolor
+  setFillStyle = xform1 c_th1s_setfillstyle
+instance ITAttFill TH1I where
+  setFillColor = xform1 c_th1i_setfillcolor
+  setFillStyle = xform1 c_th1i_setfillstyle
+instance ITAttFill TH1F where
+  setFillColor = xform1 c_th1f_setfillcolor
+  setFillStyle = xform1 c_th1f_setfillstyle
+instance ITAttFill TH1D where
+  setFillColor = xform1 c_th1d_setfillcolor
+  setFillStyle = xform1 c_th1d_setfillstyle
+instance ITAttFill TH1C where
+  setFillColor = xform1 c_th1c_setfillcolor
+  setFillStyle = xform1 c_th1c_setfillstyle
+instance ITAttFill TH3 where
+  setFillColor = xform1 c_th3_setfillcolor
+  setFillStyle = xform1 c_th3_setfillstyle
+instance ITAttFill TH2 where
+  setFillColor = xform1 c_th2_setfillcolor
+  setFillStyle = xform1 c_th2_setfillstyle
+instance ITAttFill TH1 where
+  setFillColor = xform1 c_th1_setfillcolor
+  setFillStyle = xform1 c_th1_setfillstyle
+instance ITAttFill TBranch where
+  setFillColor = xform1 c_tbranch_setfillcolor
+  setFillStyle = xform1 c_tbranch_setfillstyle
+instance ITAttFill TEfficiency where
+  setFillColor = xform1 c_tefficiency_setfillcolor
+  setFillStyle = xform1 c_tefficiency_setfillstyle
+instance ITAttFill TCurlyArc where
+  setFillColor = xform1 c_tcurlyarc_setfillcolor
+  setFillStyle = xform1 c_tcurlyarc_setfillstyle
+instance ITAttFill TCurlyLine where
+  setFillColor = xform1 c_tcurlyline_setfillcolor
+  setFillStyle = xform1 c_tcurlyline_setfillstyle
+instance ITAttFill TPolyLine where
+  setFillColor = xform1 c_tpolyline_setfillcolor
+  setFillStyle = xform1 c_tpolyline_setfillstyle
+instance ITAttFill TTreeSQL where
+  setFillColor = xform1 c_ttreesql_setfillcolor
+  setFillStyle = xform1 c_ttreesql_setfillstyle
+instance ITAttFill TNtupleD where
+  setFillColor = xform1 c_tntupled_setfillcolor
+  setFillStyle = xform1 c_tntupled_setfillstyle
+instance ITAttFill TNtuple where
+  setFillColor = xform1 c_tntuple_setfillcolor
+  setFillStyle = xform1 c_tntuple_setfillstyle
+instance ITAttFill TChain where
+  setFillColor = xform1 c_tchain_setfillcolor
+  setFillStyle = xform1 c_tchain_setfillstyle
+instance ITAttFill TTree where
+  setFillColor = xform1 c_ttree_setfillcolor
+  setFillStyle = xform1 c_ttree_setfillstyle
+instance ITAttFill TSliderBox where
+  setFillColor = xform1 c_tsliderbox_setfillcolor
+  setFillStyle = xform1 c_tsliderbox_setfillstyle
+instance ITAttFill TFrame where
+  setFillColor = xform1 c_tframe_setfillcolor
+  setFillStyle = xform1 c_tframe_setfillstyle
+instance ITAttFill TWbox where
+  setFillColor = xform1 c_twbox_setfillcolor
+  setFillStyle = xform1 c_twbox_setfillstyle
+instance ITAttFill TPaveClass where
+  setFillColor = xform1 c_tpaveclass_setfillcolor
+  setFillStyle = xform1 c_tpaveclass_setfillstyle
+instance ITAttFill TPaveLabel where
+  setFillColor = xform1 c_tpavelabel_setfillcolor
+  setFillStyle = xform1 c_tpavelabel_setfillstyle
+instance ITAttFill TLegend where
+  setFillColor = xform1 c_tlegend_setfillcolor
+  setFillStyle = xform1 c_tlegend_setfillstyle
+instance ITAttFill TPavesText where
+  setFillColor = xform1 c_tpavestext_setfillcolor
+  setFillStyle = xform1 c_tpavestext_setfillstyle
+instance ITAttFill TPaveStats where
+  setFillColor = xform1 c_tpavestats_setfillcolor
+  setFillStyle = xform1 c_tpavestats_setfillstyle
+instance ITAttFill TDiamond where
+  setFillColor = xform1 c_tdiamond_setfillcolor
+  setFillStyle = xform1 c_tdiamond_setfillstyle
+instance ITAttFill TPaveText where
+  setFillColor = xform1 c_tpavetext_setfillcolor
+  setFillStyle = xform1 c_tpavetext_setfillstyle
+instance ITAttFill TPave where
+  setFillColor = xform1 c_tpave_setfillcolor
+  setFillStyle = xform1 c_tpave_setfillstyle
+instance ITAttFill TBox where
+  setFillColor = xform1 c_tbox_setfillcolor
+  setFillStyle = xform1 c_tbox_setfillstyle
+instance ITAttFill TXTRU where
+  setFillColor = xform1 c_txtru_setfillcolor
+  setFillStyle = xform1 c_txtru_setfillstyle
+instance ITAttFill TSPHE where
+  setFillColor = xform1 c_tsphe_setfillcolor
+  setFillStyle = xform1 c_tsphe_setfillstyle
+instance ITAttFill TPolyLineShape where
+  setFillColor = xform1 c_tpolylineshape_setfillcolor
+  setFillStyle = xform1 c_tpolylineshape_setfillstyle
+instance ITAttFill TPCON where
+  setFillColor = xform1 c_tpcon_setfillcolor
+  setFillStyle = xform1 c_tpcon_setfillstyle
+instance ITAttFill TTUBE where
+  setFillColor = xform1 c_ttube_setfillcolor
+  setFillStyle = xform1 c_ttube_setfillstyle
+instance ITAttFill TBRIK where
+  setFillColor = xform1 c_tbrik_setfillcolor
+  setFillStyle = xform1 c_tbrik_setfillstyle
+instance ITAttFill TShape where
+  setFillColor = xform1 c_tshape_setfillcolor
+  setFillStyle = xform1 c_tshape_setfillstyle
+instance ITAttFill TArrow where
+  setFillColor = xform1 c_tarrow_setfillcolor
+  setFillStyle = xform1 c_tarrow_setfillstyle
+instance ITAttFill TCrown where
+  setFillColor = xform1 c_tcrown_setfillcolor
+  setFillStyle = xform1 c_tcrown_setfillstyle
+instance ITAttFill TArc where
+  setFillColor = xform1 c_tarc_setfillcolor
+  setFillStyle = xform1 c_tarc_setfillstyle
+instance ITAttFill TEllipse where
+  setFillColor = xform1 c_tellipse_setfillcolor
+  setFillStyle = xform1 c_tellipse_setfillstyle
+instance ITAttFill TGraphQQ where
+  setFillColor = xform1 c_tgraphqq_setfillcolor
+  setFillStyle = xform1 c_tgraphqq_setfillstyle
+instance ITAttFill TGraphPolar where
+  setFillColor = xform1 c_tgraphpolar_setfillcolor
+  setFillStyle = xform1 c_tgraphpolar_setfillstyle
+instance ITAttFill TGraphErrors where
+  setFillColor = xform1 c_tgrapherrors_setfillcolor
+  setFillStyle = xform1 c_tgrapherrors_setfillstyle
+instance ITAttFill TGraphBentErrors where
+  setFillColor = xform1 c_tgraphbenterrors_setfillcolor
+  setFillStyle = xform1 c_tgraphbenterrors_setfillstyle
+instance ITAttFill TCutG where
+  setFillColor = xform1 c_tcutg_setfillcolor
+  setFillStyle = xform1 c_tcutg_setfillstyle
+instance ITAttFill TGraphAsymmErrors where
+  setFillColor = xform1 c_tgraphasymmerrors_setfillcolor
+  setFillStyle = xform1 c_tgraphasymmerrors_setfillstyle
+instance ITAttFill TGraph where
+  setFillColor = xform1 c_tgraph_setfillcolor
+  setFillStyle = xform1 c_tgraph_setfillstyle
+instance ITAttFill TF1 where
+  setFillColor = xform1 c_tf1_setfillcolor
+  setFillStyle = xform1 c_tf1_setfillstyle
+
+instance ITAttLine TSlider where
+  setLineColor = xform1 c_tslider_setlinecolor
+instance ITAttLine TEvePad where
+  setLineColor = xform1 c_tevepad_setlinecolor
+instance ITAttLine TInspectCanvas where
+  setLineColor = xform1 c_tinspectcanvas_setlinecolor
+instance ITAttLine TDialogCanvas where
+  setLineColor = xform1 c_tdialogcanvas_setlinecolor
+instance ITAttLine TCanvas where
+  setLineColor = xform1 c_tcanvas_setlinecolor
+instance ITAttLine TGroupButton where
+  setLineColor = xform1 c_tgroupbutton_setlinecolor
+instance ITAttLine TButton where
+  setLineColor = xform1 c_tbutton_setlinecolor
+instance ITAttLine TPad where
+  setLineColor = xform1 c_tpad_setlinecolor
+instance ITAttLine TVirtualPad where
+  setLineColor = xform1 c_tvirtualpad_setlinecolor
+instance ITAttLine TH3S where
+  setLineColor = xform1 c_th3s_setlinecolor
+instance ITAttLine TH3I where
+  setLineColor = xform1 c_th3i_setlinecolor
+instance ITAttLine TH3F where
+  setLineColor = xform1 c_th3f_setlinecolor
+instance ITAttLine TH3D where
+  setLineColor = xform1 c_th3d_setlinecolor
+instance ITAttLine TH3C where
+  setLineColor = xform1 c_th3c_setlinecolor
+instance ITAttLine TH2S where
+  setLineColor = xform1 c_th2s_setlinecolor
+instance ITAttLine TH2Poly where
+  setLineColor = xform1 c_th2poly_setlinecolor
+instance ITAttLine TH2I where
+  setLineColor = xform1 c_th2i_setlinecolor
+instance ITAttLine TH2F where
+  setLineColor = xform1 c_th2f_setlinecolor
+instance ITAttLine TH2D where
+  setLineColor = xform1 c_th2d_setlinecolor
+instance ITAttLine TH2C where
+  setLineColor = xform1 c_th2c_setlinecolor
+instance ITAttLine TH1S where
+  setLineColor = xform1 c_th1s_setlinecolor
+instance ITAttLine TH1I where
+  setLineColor = xform1 c_th1i_setlinecolor
+instance ITAttLine TH1F where
+  setLineColor = xform1 c_th1f_setlinecolor
+instance ITAttLine TH1D where
+  setLineColor = xform1 c_th1d_setlinecolor
+instance ITAttLine TH1C where
+  setLineColor = xform1 c_th1c_setlinecolor
+instance ITAttLine TH3 where
+  setLineColor = xform1 c_th3_setlinecolor
+instance ITAttLine TH2 where
+  setLineColor = xform1 c_th2_setlinecolor
+instance ITAttLine TH1 where
+  setLineColor = xform1 c_th1_setlinecolor
+instance ITAttLine TLatex where
+  setLineColor = xform1 c_tlatex_setlinecolor
+instance ITAttLine TEfficiency where
+  setLineColor = xform1 c_tefficiency_setlinecolor
+instance ITAttLine TCurlyArc where
+  setLineColor = xform1 c_tcurlyarc_setlinecolor
+instance ITAttLine TCurlyLine where
+  setLineColor = xform1 c_tcurlyline_setlinecolor
+instance ITAttLine TPolyLine where
+  setLineColor = xform1 c_tpolyline_setlinecolor
+instance ITAttLine TTreeSQL where
+  setLineColor = xform1 c_ttreesql_setlinecolor
+instance ITAttLine TNtupleD where
+  setLineColor = xform1 c_tntupled_setlinecolor
+instance ITAttLine TNtuple where
+  setLineColor = xform1 c_tntuple_setlinecolor
+instance ITAttLine TChain where
+  setLineColor = xform1 c_tchain_setlinecolor
+instance ITAttLine TTree where
+  setLineColor = xform1 c_ttree_setlinecolor
+instance ITAttLine TSliderBox where
+  setLineColor = xform1 c_tsliderbox_setlinecolor
+instance ITAttLine TFrame where
+  setLineColor = xform1 c_tframe_setlinecolor
+instance ITAttLine TWbox where
+  setLineColor = xform1 c_twbox_setlinecolor
+instance ITAttLine TPaveClass where
+  setLineColor = xform1 c_tpaveclass_setlinecolor
+instance ITAttLine TPaveLabel where
+  setLineColor = xform1 c_tpavelabel_setlinecolor
+instance ITAttLine TLegend where
+  setLineColor = xform1 c_tlegend_setlinecolor
+instance ITAttLine TPavesText where
+  setLineColor = xform1 c_tpavestext_setlinecolor
+instance ITAttLine TPaveStats where
+  setLineColor = xform1 c_tpavestats_setlinecolor
+instance ITAttLine TDiamond where
+  setLineColor = xform1 c_tdiamond_setlinecolor
+instance ITAttLine TPaveText where
+  setLineColor = xform1 c_tpavetext_setlinecolor
+instance ITAttLine TPave where
+  setLineColor = xform1 c_tpave_setlinecolor
+instance ITAttLine TBox where
+  setLineColor = xform1 c_tbox_setlinecolor
+instance ITAttLine TXTRU where
+  setLineColor = xform1 c_txtru_setlinecolor
+instance ITAttLine TSPHE where
+  setLineColor = xform1 c_tsphe_setlinecolor
+instance ITAttLine TPolyLineShape where
+  setLineColor = xform1 c_tpolylineshape_setlinecolor
+instance ITAttLine TPCON where
+  setLineColor = xform1 c_tpcon_setlinecolor
+instance ITAttLine TTUBE where
+  setLineColor = xform1 c_ttube_setlinecolor
+instance ITAttLine TBRIK where
+  setLineColor = xform1 c_tbrik_setlinecolor
+instance ITAttLine TShape where
+  setLineColor = xform1 c_tshape_setlinecolor
+instance ITAttLine TGaxis where
+  setLineColor = xform1 c_tgaxis_setlinecolor
+instance ITAttLine TArrow where
+  setLineColor = xform1 c_tarrow_setlinecolor
+instance ITAttLine TLine where
+  setLineColor = xform1 c_tline_setlinecolor
+instance ITAttLine TCrown where
+  setLineColor = xform1 c_tcrown_setlinecolor
+instance ITAttLine TArc where
+  setLineColor = xform1 c_tarc_setlinecolor
+instance ITAttLine TEllipse where
+  setLineColor = xform1 c_tellipse_setlinecolor
+instance ITAttLine TGraphQQ where
+  setLineColor = xform1 c_tgraphqq_setlinecolor
+instance ITAttLine TGraphPolar where
+  setLineColor = xform1 c_tgraphpolar_setlinecolor
+instance ITAttLine TGraphErrors where
+  setLineColor = xform1 c_tgrapherrors_setlinecolor
+instance ITAttLine TGraphBentErrors where
+  setLineColor = xform1 c_tgraphbenterrors_setlinecolor
+instance ITAttLine TCutG where
+  setLineColor = xform1 c_tcutg_setlinecolor
+instance ITAttLine TGraphAsymmErrors where
+  setLineColor = xform1 c_tgraphasymmerrors_setlinecolor
+instance ITAttLine TGraph where
+  setLineColor = xform1 c_tgraph_setlinecolor
+instance ITAttLine TF1 where
+  setLineColor = xform1 c_tf1_setlinecolor
+
+instance ITAttMarker TH3S where
+instance ITAttMarker TH3I where
+instance ITAttMarker TH3F where
+instance ITAttMarker TH3D where
+instance ITAttMarker TH3C where
+instance ITAttMarker TH2S where
+instance ITAttMarker TH2Poly where
+instance ITAttMarker TH2I where
+instance ITAttMarker TH2F where
+instance ITAttMarker TH2D where
+instance ITAttMarker TH2C where
+instance ITAttMarker TH1S where
+instance ITAttMarker TH1I where
+instance ITAttMarker TH1F where
+instance ITAttMarker TH1D where
+instance ITAttMarker TH1C where
+instance ITAttMarker TH3 where
+instance ITAttMarker TH2 where
+instance ITAttMarker TH1 where
+instance ITAttMarker TEfficiency where
+instance ITAttMarker TTreeSQL where
+instance ITAttMarker TNtupleD where
+instance ITAttMarker TNtuple where
+instance ITAttMarker TChain where
+instance ITAttMarker TTree where
+instance ITAttMarker TPolyLineShape where
+instance ITAttMarker TGraphQQ where
+instance ITAttMarker TGraphPolar where
+instance ITAttMarker TGraphErrors where
+instance ITAttMarker TGraphBentErrors where
+instance ITAttMarker TCutG where
+instance ITAttMarker TGraphAsymmErrors where
+instance ITAttMarker TGraph where
+
+instance ITAttPad TSlider where
+instance ITAttPad TEvePad where
+instance ITAttPad TInspectCanvas where
+instance ITAttPad TDialogCanvas where
+instance ITAttPad TCanvas where
+instance ITAttPad TGroupButton where
+instance ITAttPad TButton where
+instance ITAttPad TPad where
+instance ITAttPad TVirtualPad where
+
+instance ITAttText TInspectCanvas where
+  setTextColor = xform1 c_tinspectcanvas_settextcolor
+  setTextAlign = xform1 c_tinspectcanvas_settextalign
+  setTextSize = xform1 c_tinspectcanvas_settextsize
+instance ITAttText TDialogCanvas where
+  setTextColor = xform1 c_tdialogcanvas_settextcolor
+  setTextAlign = xform1 c_tdialogcanvas_settextalign
+  setTextSize = xform1 c_tdialogcanvas_settextsize
+instance ITAttText TGroupButton where
+  setTextColor = xform1 c_tgroupbutton_settextcolor
+  setTextAlign = xform1 c_tgroupbutton_settextalign
+  setTextSize = xform1 c_tgroupbutton_settextsize
+instance ITAttText TButton where
+  setTextColor = xform1 c_tbutton_settextcolor
+  setTextAlign = xform1 c_tbutton_settextalign
+  setTextSize = xform1 c_tbutton_settextsize
+instance ITAttText TText where
+  setTextColor = xform1 c_ttext_settextcolor
+  setTextAlign = xform1 c_ttext_settextalign
+  setTextSize = xform1 c_ttext_settextsize
+instance ITAttText TLatex where
+  setTextColor = xform1 c_tlatex_settextcolor
+  setTextAlign = xform1 c_tlatex_settextalign
+  setTextSize = xform1 c_tlatex_settextsize
+instance ITAttText TPaveClass where
+  setTextColor = xform1 c_tpaveclass_settextcolor
+  setTextAlign = xform1 c_tpaveclass_settextalign
+  setTextSize = xform1 c_tpaveclass_settextsize
+instance ITAttText TPaveLabel where
+  setTextColor = xform1 c_tpavelabel_settextcolor
+  setTextAlign = xform1 c_tpavelabel_settextalign
+  setTextSize = xform1 c_tpavelabel_settextsize
+instance ITAttText TLegend where
+  setTextColor = xform1 c_tlegend_settextcolor
+  setTextAlign = xform1 c_tlegend_settextalign
+  setTextSize = xform1 c_tlegend_settextsize
+instance ITAttText TPavesText where
+  setTextColor = xform1 c_tpavestext_settextcolor
+  setTextAlign = xform1 c_tpavestext_settextalign
+  setTextSize = xform1 c_tpavestext_settextsize
+instance ITAttText TPaveStats where
+  setTextColor = xform1 c_tpavestats_settextcolor
+  setTextAlign = xform1 c_tpavestats_settextalign
+  setTextSize = xform1 c_tpavestats_settextsize
+instance ITAttText TDiamond where
+  setTextColor = xform1 c_tdiamond_settextcolor
+  setTextAlign = xform1 c_tdiamond_settextalign
+  setTextSize = xform1 c_tdiamond_settextsize
+instance ITAttText TPaveText where
+  setTextColor = xform1 c_tpavetext_settextcolor
+  setTextAlign = xform1 c_tpavetext_settextalign
+  setTextSize = xform1 c_tpavetext_settextsize
+instance ITAttText TGaxis where
+  setTextColor = xform1 c_tgaxis_settextcolor
+  setTextAlign = xform1 c_tgaxis_settextalign
+  setTextSize = xform1 c_tgaxis_settextsize
+
+instance ITBox TSliderBox where
+instance ITBox TFrame where
+instance ITBox TWbox where
+instance ITBox TPaveClass where
+instance ITBox TPaveLabel where
+instance ITBox TLegend where
+instance ITBox TPavesText where
+instance ITBox TPaveStats where
+instance ITBox TDiamond where
+instance ITBox TPaveText where
+instance ITBox TPave where
+
+instance ITButton TGroupButton where
+
+instance ITCanvas TInspectCanvas where
+instance ITCanvas TDialogCanvas where
+
+instance ITCurlyLine TCurlyArc where
+
+instance ITDirectory TFile where
+  close = xform1 c_tfile_close
+instance ITDirectory TDirectoryFile where
+  close = xform1 c_tdirectoryfile_close
+
+instance ITDirectoryFile TFile where
+
+instance ITEllipse TCrown where
+instance ITEllipse TArc where
+
+instance ITFormula TF1 where
+  getParameter = xform1 c_tf1_getparameter
+  setParameter = xform2 c_tf1_setparameter
+
+instance ITGraph TGraphQQ where
+instance ITGraph TGraphPolar where
+instance ITGraph TGraphErrors where
+instance ITGraph TGraphBentErrors where
+instance ITGraph TCutG where
+instance ITGraph TGraphAsymmErrors where
+
+instance ITGraphErrors TGraphPolar where
+
+instance ITH1 TH3S where
+  getXaxis = xform0 c_th3s_getxaxis
+  getYaxis = xform0 c_th3s_getyaxis
+  getZaxis = xform0 c_th3s_getzaxis
+  add = xform2 c_th3s_add
+  fill1 = xform1 c_th3s_fill1
+instance ITH1 TH3I where
+  getXaxis = xform0 c_th3i_getxaxis
+  getYaxis = xform0 c_th3i_getyaxis
+  getZaxis = xform0 c_th3i_getzaxis
+  add = xform2 c_th3i_add
+  fill1 = xform1 c_th3i_fill1
+instance ITH1 TH3F where
+  getXaxis = xform0 c_th3f_getxaxis
+  getYaxis = xform0 c_th3f_getyaxis
+  getZaxis = xform0 c_th3f_getzaxis
+  add = xform2 c_th3f_add
+  fill1 = xform1 c_th3f_fill1
+instance ITH1 TH3D where
+  getXaxis = xform0 c_th3d_getxaxis
+  getYaxis = xform0 c_th3d_getyaxis
+  getZaxis = xform0 c_th3d_getzaxis
+  add = xform2 c_th3d_add
+  fill1 = xform1 c_th3d_fill1
+instance ITH1 TH3C where
+  getXaxis = xform0 c_th3c_getxaxis
+  getYaxis = xform0 c_th3c_getyaxis
+  getZaxis = xform0 c_th3c_getzaxis
+  add = xform2 c_th3c_add
+  fill1 = xform1 c_th3c_fill1
+instance ITH1 TH2S where
+  getXaxis = xform0 c_th2s_getxaxis
+  getYaxis = xform0 c_th2s_getyaxis
+  getZaxis = xform0 c_th2s_getzaxis
+  add = xform2 c_th2s_add
+  fill1 = xform1 c_th2s_fill1
+instance ITH1 TH2Poly where
+  getXaxis = xform0 c_th2poly_getxaxis
+  getYaxis = xform0 c_th2poly_getyaxis
+  getZaxis = xform0 c_th2poly_getzaxis
+  add = xform2 c_th2poly_add
+  fill1 = xform1 c_th2poly_fill1
+instance ITH1 TH2I where
+  getXaxis = xform0 c_th2i_getxaxis
+  getYaxis = xform0 c_th2i_getyaxis
+  getZaxis = xform0 c_th2i_getzaxis
+  add = xform2 c_th2i_add
+  fill1 = xform1 c_th2i_fill1
+instance ITH1 TH2F where
+  getXaxis = xform0 c_th2f_getxaxis
+  getYaxis = xform0 c_th2f_getyaxis
+  getZaxis = xform0 c_th2f_getzaxis
+  add = xform2 c_th2f_add
+  fill1 = xform1 c_th2f_fill1
+instance ITH1 TH2D where
+  getXaxis = xform0 c_th2d_getxaxis
+  getYaxis = xform0 c_th2d_getyaxis
+  getZaxis = xform0 c_th2d_getzaxis
+  add = xform2 c_th2d_add
+  fill1 = xform1 c_th2d_fill1
+instance ITH1 TH2C where
+  getXaxis = xform0 c_th2c_getxaxis
+  getYaxis = xform0 c_th2c_getyaxis
+  getZaxis = xform0 c_th2c_getzaxis
+  add = xform2 c_th2c_add
+  fill1 = xform1 c_th2c_fill1
+instance ITH1 TH1S where
+  getXaxis = xform0 c_th1s_getxaxis
+  getYaxis = xform0 c_th1s_getyaxis
+  getZaxis = xform0 c_th1s_getzaxis
+  add = xform2 c_th1s_add
+  fill1 = xform1 c_th1s_fill1
+instance ITH1 TH1I where
+  getXaxis = xform0 c_th1i_getxaxis
+  getYaxis = xform0 c_th1i_getyaxis
+  getZaxis = xform0 c_th1i_getzaxis
+  add = xform2 c_th1i_add
+  fill1 = xform1 c_th1i_fill1
+instance ITH1 TH1F where
+  getXaxis = xform0 c_th1f_getxaxis
+  getYaxis = xform0 c_th1f_getyaxis
+  getZaxis = xform0 c_th1f_getzaxis
+  add = xform2 c_th1f_add
+  fill1 = xform1 c_th1f_fill1
+instance ITH1 TH1D where
+  getXaxis = xform0 c_th1d_getxaxis
+  getYaxis = xform0 c_th1d_getyaxis
+  getZaxis = xform0 c_th1d_getzaxis
+  add = xform2 c_th1d_add
+  fill1 = xform1 c_th1d_fill1
+instance ITH1 TH1C where
+  getXaxis = xform0 c_th1c_getxaxis
+  getYaxis = xform0 c_th1c_getyaxis
+  getZaxis = xform0 c_th1c_getzaxis
+  add = xform2 c_th1c_add
+  fill1 = xform1 c_th1c_fill1
+instance ITH1 TH3 where
+  getXaxis = xform0 c_th3_getxaxis
+  getYaxis = xform0 c_th3_getyaxis
+  getZaxis = xform0 c_th3_getzaxis
+  add = xform2 c_th3_add
+  fill1 = xform1 c_th3_fill1
+instance ITH1 TH2 where
+  getXaxis = xform0 c_th2_getxaxis
+  getYaxis = xform0 c_th2_getyaxis
+  getZaxis = xform0 c_th2_getzaxis
+  add = xform2 c_th2_add
+  fill1 = xform1 c_th2_fill1
+
+instance ITH2 TH2S where
+  fill2 = xform2 c_th2s_fill2
+instance ITH2 TH2Poly where
+  fill2 = xform2 c_th2poly_fill2
+instance ITH2 TH2I where
+  fill2 = xform2 c_th2i_fill2
+instance ITH2 TH2F where
+  fill2 = xform2 c_th2f_fill2
+instance ITH2 TH2D where
+  fill2 = xform2 c_th2d_fill2
+instance ITH2 TH2C where
+  fill2 = xform2 c_th2c_fill2
+
+instance ITH3 TH3S where
+instance ITH3 TH3I where
+instance ITH3 TH3F where
+instance ITH3 TH3D where
+instance ITH3 TH3C where
+
+instance ITLine TGaxis where
+instance ITLine TArrow where
+
+instance ITNamed TH3S where
+  setTitle = xform1 c_th3s_settitle
+instance ITNamed TH3I where
+  setTitle = xform1 c_th3i_settitle
+instance ITNamed TH3F where
+  setTitle = xform1 c_th3f_settitle
+instance ITNamed TH3D where
+  setTitle = xform1 c_th3d_settitle
+instance ITNamed TH3C where
+  setTitle = xform1 c_th3c_settitle
+instance ITNamed TH2S where
+  setTitle = xform1 c_th2s_settitle
+instance ITNamed TH2Poly where
+  setTitle = xform1 c_th2poly_settitle
+instance ITNamed TH2I where
+  setTitle = xform1 c_th2i_settitle
+instance ITNamed TH2F where
+  setTitle = xform1 c_th2f_settitle
+instance ITNamed TH2D where
+  setTitle = xform1 c_th2d_settitle
+instance ITNamed TH2C where
+  setTitle = xform1 c_th2c_settitle
+instance ITNamed TH1S where
+  setTitle = xform1 c_th1s_settitle
+instance ITNamed TH1I where
+  setTitle = xform1 c_th1i_settitle
+instance ITNamed TH1F where
+  setTitle = xform1 c_th1f_settitle
+instance ITNamed TH1D where
+  setTitle = xform1 c_th1d_settitle
+instance ITNamed TH1C where
+  setTitle = xform1 c_th1c_settitle
+instance ITNamed TH3 where
+  setTitle = xform1 c_th3_settitle
+instance ITNamed TH2 where
+  setTitle = xform1 c_th2_settitle
+instance ITNamed TH1 where
+  setTitle = xform1 c_th1_settitle
+instance ITNamed TBranch where
+  setTitle = xform1 c_tbranch_settitle
+instance ITNamed TFile where
+  setTitle = xform1 c_tfile_settitle
+instance ITNamed TDirectoryFile where
+  setTitle = xform1 c_tdirectoryfile_settitle
+instance ITNamed TDirectory where
+  setTitle = xform1 c_tdirectory_settitle
+instance ITNamed TText where
+  setTitle = xform1 c_ttext_settitle
+instance ITNamed TLatex where
+  setTitle = xform1 c_tlatex_settitle
+instance ITNamed TAxis where
+  setTitle = xform1 c_taxis_settitle
+instance ITNamed TEfficiency where
+  setTitle = xform1 c_tefficiency_settitle
+instance ITNamed TTreeSQL where
+  setTitle = xform1 c_ttreesql_settitle
+instance ITNamed TNtupleD where
+  setTitle = xform1 c_tntupled_settitle
+instance ITNamed TNtuple where
+  setTitle = xform1 c_tntuple_settitle
+instance ITNamed TChain where
+  setTitle = xform1 c_tchain_settitle
+instance ITNamed TTree where
+  setTitle = xform1 c_ttree_settitle
+instance ITNamed TXTRU where
+  setTitle = xform1 c_txtru_settitle
+instance ITNamed TSPHE where
+  setTitle = xform1 c_tsphe_settitle
+instance ITNamed TPolyLineShape where
+  setTitle = xform1 c_tpolylineshape_settitle
+instance ITNamed TPCON where
+  setTitle = xform1 c_tpcon_settitle
+instance ITNamed TTUBE where
+  setTitle = xform1 c_ttube_settitle
+instance ITNamed TBRIK where
+  setTitle = xform1 c_tbrik_settitle
+instance ITNamed TShape where
+  setTitle = xform1 c_tshape_settitle
+instance ITNamed TGraphQQ where
+  setTitle = xform1 c_tgraphqq_settitle
+instance ITNamed TGraphPolar where
+  setTitle = xform1 c_tgraphpolar_settitle
+instance ITNamed TGraphErrors where
+  setTitle = xform1 c_tgrapherrors_settitle
+instance ITNamed TGraphBentErrors where
+  setTitle = xform1 c_tgraphbenterrors_settitle
+instance ITNamed TCutG where
+  setTitle = xform1 c_tcutg_settitle
+instance ITNamed TGraphAsymmErrors where
+  setTitle = xform1 c_tgraphasymmerrors_settitle
+instance ITNamed TGraph where
+  setTitle = xform1 c_tgraph_settitle
+instance ITNamed THStack where
+  setTitle = xform1 c_thstack_settitle
+instance ITNamed TAttParticle where
+  setTitle = xform1 c_tattparticle_settitle
+
+instance ITObject TRint where
+  getName = xform0 c_trint_getname
+  draw = xform1 c_trint_draw
+  saveAs = xform2 c_trint_saveas
+  write = xform3 c_trint_write
+instance ITObject TApplication where
+  getName = xform0 c_tapplication_getname
+  draw = xform1 c_tapplication_draw
+  saveAs = xform2 c_tapplication_saveas
+  write = xform3 c_tapplication_write
+instance ITObject TSlider where
+  getName = xform0 c_tslider_getname
+  draw = xform1 c_tslider_draw
+  saveAs = xform2 c_tslider_saveas
+  write = xform3 c_tslider_write
+instance ITObject TEvePad where
+  getName = xform0 c_tevepad_getname
+  draw = xform1 c_tevepad_draw
+  saveAs = xform2 c_tevepad_saveas
+  write = xform3 c_tevepad_write
+instance ITObject TInspectCanvas where
+  getName = xform0 c_tinspectcanvas_getname
+  draw = xform1 c_tinspectcanvas_draw
+  saveAs = xform2 c_tinspectcanvas_saveas
+  write = xform3 c_tinspectcanvas_write
+instance ITObject TDialogCanvas where
+  getName = xform0 c_tdialogcanvas_getname
+  draw = xform1 c_tdialogcanvas_draw
+  saveAs = xform2 c_tdialogcanvas_saveas
+  write = xform3 c_tdialogcanvas_write
+instance ITObject TCanvas where
+  getName = xform0 c_tcanvas_getname
+  draw = xform1 c_tcanvas_draw
+  saveAs = xform2 c_tcanvas_saveas
+  write = xform3 c_tcanvas_write
+instance ITObject TGroupButton where
+  getName = xform0 c_tgroupbutton_getname
+  draw = xform1 c_tgroupbutton_draw
+  saveAs = xform2 c_tgroupbutton_saveas
+  write = xform3 c_tgroupbutton_write
+instance ITObject TButton where
+  getName = xform0 c_tbutton_getname
+  draw = xform1 c_tbutton_draw
+  saveAs = xform2 c_tbutton_saveas
+  write = xform3 c_tbutton_write
+instance ITObject TPad where
+  getName = xform0 c_tpad_getname
+  draw = xform1 c_tpad_draw
+  saveAs = xform2 c_tpad_saveas
+  write = xform3 c_tpad_write
+instance ITObject TVirtualPad where
+  getName = xform0 c_tvirtualpad_getname
+  draw = xform1 c_tvirtualpad_draw
+  saveAs = xform2 c_tvirtualpad_saveas
+  write = xform3 c_tvirtualpad_write
+instance ITObject TH3S where
+  getName = xform0 c_th3s_getname
+  draw = xform1 c_th3s_draw
+  saveAs = xform2 c_th3s_saveas
+  write = xform3 c_th3s_write
+instance ITObject TH3I where
+  getName = xform0 c_th3i_getname
+  draw = xform1 c_th3i_draw
+  saveAs = xform2 c_th3i_saveas
+  write = xform3 c_th3i_write
+instance ITObject TH3F where
+  getName = xform0 c_th3f_getname
+  draw = xform1 c_th3f_draw
+  saveAs = xform2 c_th3f_saveas
+  write = xform3 c_th3f_write
+instance ITObject TH3D where
+  getName = xform0 c_th3d_getname
+  draw = xform1 c_th3d_draw
+  saveAs = xform2 c_th3d_saveas
+  write = xform3 c_th3d_write
+instance ITObject TH3C where
+  getName = xform0 c_th3c_getname
+  draw = xform1 c_th3c_draw
+  saveAs = xform2 c_th3c_saveas
+  write = xform3 c_th3c_write
+instance ITObject TH2S where
+  getName = xform0 c_th2s_getname
+  draw = xform1 c_th2s_draw
+  saveAs = xform2 c_th2s_saveas
+  write = xform3 c_th2s_write
+instance ITObject TH2Poly where
+  getName = xform0 c_th2poly_getname
+  draw = xform1 c_th2poly_draw
+  saveAs = xform2 c_th2poly_saveas
+  write = xform3 c_th2poly_write
+instance ITObject TH2I where
+  getName = xform0 c_th2i_getname
+  draw = xform1 c_th2i_draw
+  saveAs = xform2 c_th2i_saveas
+  write = xform3 c_th2i_write
+instance ITObject TH2F where
+  getName = xform0 c_th2f_getname
+  draw = xform1 c_th2f_draw
+  saveAs = xform2 c_th2f_saveas
+  write = xform3 c_th2f_write
+instance ITObject TH2D where
+  getName = xform0 c_th2d_getname
+  draw = xform1 c_th2d_draw
+  saveAs = xform2 c_th2d_saveas
+  write = xform3 c_th2d_write
+instance ITObject TH2C where
+  getName = xform0 c_th2c_getname
+  draw = xform1 c_th2c_draw
+  saveAs = xform2 c_th2c_saveas
+  write = xform3 c_th2c_write
+instance ITObject TH1S where
+  getName = xform0 c_th1s_getname
+  draw = xform1 c_th1s_draw
+  saveAs = xform2 c_th1s_saveas
+  write = xform3 c_th1s_write
+instance ITObject TH1I where
+  getName = xform0 c_th1i_getname
+  draw = xform1 c_th1i_draw
+  saveAs = xform2 c_th1i_saveas
+  write = xform3 c_th1i_write
+instance ITObject TH1F where
+  getName = xform0 c_th1f_getname
+  draw = xform1 c_th1f_draw
+  saveAs = xform2 c_th1f_saveas
+  write = xform3 c_th1f_write
+instance ITObject TH1D where
+  getName = xform0 c_th1d_getname
+  draw = xform1 c_th1d_draw
+  saveAs = xform2 c_th1d_saveas
+  write = xform3 c_th1d_write
+instance ITObject TH1C where
+  getName = xform0 c_th1c_getname
+  draw = xform1 c_th1c_draw
+  saveAs = xform2 c_th1c_saveas
+  write = xform3 c_th1c_write
+instance ITObject TH3 where
+  getName = xform0 c_th3_getname
+  draw = xform1 c_th3_draw
+  saveAs = xform2 c_th3_saveas
+  write = xform3 c_th3_write
+instance ITObject TH2 where
+  getName = xform0 c_th2_getname
+  draw = xform1 c_th2_draw
+  saveAs = xform2 c_th2_saveas
+  write = xform3 c_th2_write
+instance ITObject TH1 where
+  getName = xform0 c_th1_getname
+  draw = xform1 c_th1_draw
+  saveAs = xform2 c_th1_saveas
+  write = xform3 c_th1_write
+instance ITObject TTreePlayer where
+  getName = xform0 c_ttreeplayer_getname
+  draw = xform1 c_ttreeplayer_draw
+  saveAs = xform2 c_ttreeplayer_saveas
+  write = xform3 c_ttreeplayer_write
+instance ITObject TVirtualTreePlayer where
+  getName = xform0 c_tvirtualtreeplayer_getname
+  draw = xform1 c_tvirtualtreeplayer_draw
+  saveAs = xform2 c_tvirtualtreeplayer_saveas
+  write = xform3 c_tvirtualtreeplayer_write
+instance ITObject TBranch where
+  getName = xform0 c_tbranch_getname
+  draw = xform1 c_tbranch_draw
+  saveAs = xform2 c_tbranch_saveas
+  write = xform3 c_tbranch_write
+instance ITObject TFile where
+  getName = xform0 c_tfile_getname
+  draw = xform1 c_tfile_draw
+  saveAs = xform2 c_tfile_saveas
+  write = xform3 c_tfile_write
+instance ITObject TDirectoryFile where
+  getName = xform0 c_tdirectoryfile_getname
+  draw = xform1 c_tdirectoryfile_draw
+  saveAs = xform2 c_tdirectoryfile_saveas
+  write = xform3 c_tdirectoryfile_write
+instance ITObject TDirectory where
+  getName = xform0 c_tdirectory_getname
+  draw = xform1 c_tdirectory_draw
+  saveAs = xform2 c_tdirectory_saveas
+  write = xform3 c_tdirectory_write
+instance ITObject TText where
+  getName = xform0 c_ttext_getname
+  draw = xform1 c_ttext_draw
+  saveAs = xform2 c_ttext_saveas
+  write = xform3 c_ttext_write
+instance ITObject TLatex where
+  getName = xform0 c_tlatex_getname
+  draw = xform1 c_tlatex_draw
+  saveAs = xform2 c_tlatex_saveas
+  write = xform3 c_tlatex_write
+instance ITObject TAxis where
+  getName = xform0 c_taxis_getname
+  draw = xform1 c_taxis_draw
+  saveAs = xform2 c_taxis_saveas
+  write = xform3 c_taxis_write
+instance ITObject TEfficiency where
+  getName = xform0 c_tefficiency_getname
+  draw = xform1 c_tefficiency_draw
+  saveAs = xform2 c_tefficiency_saveas
+  write = xform3 c_tefficiency_write
+instance ITObject TCurlyArc where
+  getName = xform0 c_tcurlyarc_getname
+  draw = xform1 c_tcurlyarc_draw
+  saveAs = xform2 c_tcurlyarc_saveas
+  write = xform3 c_tcurlyarc_write
+instance ITObject TCurlyLine where
+  getName = xform0 c_tcurlyline_getname
+  draw = xform1 c_tcurlyline_draw
+  saveAs = xform2 c_tcurlyline_saveas
+  write = xform3 c_tcurlyline_write
+instance ITObject TPolyLine where
+  getName = xform0 c_tpolyline_getname
+  draw = xform1 c_tpolyline_draw
+  saveAs = xform2 c_tpolyline_saveas
+  write = xform3 c_tpolyline_write
+instance ITObject TTreeSQL where
+  getName = xform0 c_ttreesql_getname
+  draw = xform1 c_ttreesql_draw
+  saveAs = xform2 c_ttreesql_saveas
+  write = xform3 c_ttreesql_write
+instance ITObject TNtupleD where
+  getName = xform0 c_tntupled_getname
+  draw = xform1 c_tntupled_draw
+  saveAs = xform2 c_tntupled_saveas
+  write = xform3 c_tntupled_write
+instance ITObject TNtuple where
+  getName = xform0 c_tntuple_getname
+  draw = xform1 c_tntuple_draw
+  saveAs = xform2 c_tntuple_saveas
+  write = xform3 c_tntuple_write
+instance ITObject TChain where
+  getName = xform0 c_tchain_getname
+  draw = xform1 c_tchain_draw
+  saveAs = xform2 c_tchain_saveas
+  write = xform3 c_tchain_write
+instance ITObject TTree where
+  getName = xform0 c_ttree_getname
+  draw = xform1 c_ttree_draw
+  saveAs = xform2 c_ttree_saveas
+  write = xform3 c_ttree_write
+instance ITObject TSliderBox where
+  getName = xform0 c_tsliderbox_getname
+  draw = xform1 c_tsliderbox_draw
+  saveAs = xform2 c_tsliderbox_saveas
+  write = xform3 c_tsliderbox_write
+instance ITObject TFrame where
+  getName = xform0 c_tframe_getname
+  draw = xform1 c_tframe_draw
+  saveAs = xform2 c_tframe_saveas
+  write = xform3 c_tframe_write
+instance ITObject TWbox where
+  getName = xform0 c_twbox_getname
+  draw = xform1 c_twbox_draw
+  saveAs = xform2 c_twbox_saveas
+  write = xform3 c_twbox_write
+instance ITObject TPaveClass where
+  getName = xform0 c_tpaveclass_getname
+  draw = xform1 c_tpaveclass_draw
+  saveAs = xform2 c_tpaveclass_saveas
+  write = xform3 c_tpaveclass_write
+instance ITObject TPaveLabel where
+  getName = xform0 c_tpavelabel_getname
+  draw = xform1 c_tpavelabel_draw
+  saveAs = xform2 c_tpavelabel_saveas
+  write = xform3 c_tpavelabel_write
+instance ITObject TLegend where
+  getName = xform0 c_tlegend_getname
+  draw = xform1 c_tlegend_draw
+  saveAs = xform2 c_tlegend_saveas
+  write = xform3 c_tlegend_write
+instance ITObject TPavesText where
+  getName = xform0 c_tpavestext_getname
+  draw = xform1 c_tpavestext_draw
+  saveAs = xform2 c_tpavestext_saveas
+  write = xform3 c_tpavestext_write
+instance ITObject TPaveStats where
+  getName = xform0 c_tpavestats_getname
+  draw = xform1 c_tpavestats_draw
+  saveAs = xform2 c_tpavestats_saveas
+  write = xform3 c_tpavestats_write
+instance ITObject TDiamond where
+  getName = xform0 c_tdiamond_getname
+  draw = xform1 c_tdiamond_draw
+  saveAs = xform2 c_tdiamond_saveas
+  write = xform3 c_tdiamond_write
+instance ITObject TPaveText where
+  getName = xform0 c_tpavetext_getname
+  draw = xform1 c_tpavetext_draw
+  saveAs = xform2 c_tpavetext_saveas
+  write = xform3 c_tpavetext_write
+instance ITObject TPave where
+  getName = xform0 c_tpave_getname
+  draw = xform1 c_tpave_draw
+  saveAs = xform2 c_tpave_saveas
+  write = xform3 c_tpave_write
+instance ITObject TBox where
+  getName = xform0 c_tbox_getname
+  draw = xform1 c_tbox_draw
+  saveAs = xform2 c_tbox_saveas
+  write = xform3 c_tbox_write
+instance ITObject TXTRU where
+  getName = xform0 c_txtru_getname
+  draw = xform1 c_txtru_draw
+  saveAs = xform2 c_txtru_saveas
+  write = xform3 c_txtru_write
+instance ITObject TSPHE where
+  getName = xform0 c_tsphe_getname
+  draw = xform1 c_tsphe_draw
+  saveAs = xform2 c_tsphe_saveas
+  write = xform3 c_tsphe_write
+instance ITObject TPolyLineShape where
+  getName = xform0 c_tpolylineshape_getname
+  draw = xform1 c_tpolylineshape_draw
+  saveAs = xform2 c_tpolylineshape_saveas
+  write = xform3 c_tpolylineshape_write
+instance ITObject TPCON where
+  getName = xform0 c_tpcon_getname
+  draw = xform1 c_tpcon_draw
+  saveAs = xform2 c_tpcon_saveas
+  write = xform3 c_tpcon_write
+instance ITObject TTUBE where
+  getName = xform0 c_ttube_getname
+  draw = xform1 c_ttube_draw
+  saveAs = xform2 c_ttube_saveas
+  write = xform3 c_ttube_write
+instance ITObject TBRIK where
+  getName = xform0 c_tbrik_getname
+  draw = xform1 c_tbrik_draw
+  saveAs = xform2 c_tbrik_saveas
+  write = xform3 c_tbrik_write
+instance ITObject TShape where
+  getName = xform0 c_tshape_getname
+  draw = xform1 c_tshape_draw
+  saveAs = xform2 c_tshape_saveas
+  write = xform3 c_tshape_write
+instance ITObject TGaxis where
+  getName = xform0 c_tgaxis_getname
+  draw = xform1 c_tgaxis_draw
+  saveAs = xform2 c_tgaxis_saveas
+  write = xform3 c_tgaxis_write
+instance ITObject TArrow where
+  getName = xform0 c_tarrow_getname
+  draw = xform1 c_tarrow_draw
+  saveAs = xform2 c_tarrow_saveas
+  write = xform3 c_tarrow_write
+instance ITObject TLine where
+  getName = xform0 c_tline_getname
+  draw = xform1 c_tline_draw
+  saveAs = xform2 c_tline_saveas
+  write = xform3 c_tline_write
+instance ITObject TCrown where
+  getName = xform0 c_tcrown_getname
+  draw = xform1 c_tcrown_draw
+  saveAs = xform2 c_tcrown_saveas
+  write = xform3 c_tcrown_write
+instance ITObject TArc where
+  getName = xform0 c_tarc_getname
+  draw = xform1 c_tarc_draw
+  saveAs = xform2 c_tarc_saveas
+  write = xform3 c_tarc_write
+instance ITObject TEllipse where
+  getName = xform0 c_tellipse_getname
+  draw = xform1 c_tellipse_draw
+  saveAs = xform2 c_tellipse_saveas
+  write = xform3 c_tellipse_write
+instance ITObject TGraphQQ where
+  getName = xform0 c_tgraphqq_getname
+  draw = xform1 c_tgraphqq_draw
+  saveAs = xform2 c_tgraphqq_saveas
+  write = xform3 c_tgraphqq_write
+instance ITObject TGraphPolar where
+  getName = xform0 c_tgraphpolar_getname
+  draw = xform1 c_tgraphpolar_draw
+  saveAs = xform2 c_tgraphpolar_saveas
+  write = xform3 c_tgraphpolar_write
+instance ITObject TGraphErrors where
+  getName = xform0 c_tgrapherrors_getname
+  draw = xform1 c_tgrapherrors_draw
+  saveAs = xform2 c_tgrapherrors_saveas
+  write = xform3 c_tgrapherrors_write
+instance ITObject TGraphBentErrors where
+  getName = xform0 c_tgraphbenterrors_getname
+  draw = xform1 c_tgraphbenterrors_draw
+  saveAs = xform2 c_tgraphbenterrors_saveas
+  write = xform3 c_tgraphbenterrors_write
+instance ITObject TCutG where
+  getName = xform0 c_tcutg_getname
+  draw = xform1 c_tcutg_draw
+  saveAs = xform2 c_tcutg_saveas
+  write = xform3 c_tcutg_write
+instance ITObject TGraphAsymmErrors where
+  getName = xform0 c_tgraphasymmerrors_getname
+  draw = xform1 c_tgraphasymmerrors_draw
+  saveAs = xform2 c_tgraphasymmerrors_saveas
+  write = xform3 c_tgraphasymmerrors_write
+instance ITObject TGraph where
+  getName = xform0 c_tgraph_getname
+  draw = xform1 c_tgraph_draw
+  saveAs = xform2 c_tgraph_saveas
+  write = xform3 c_tgraph_write
+instance ITObject THStack where
+  getName = xform0 c_thstack_getname
+  draw = xform1 c_thstack_draw
+  saveAs = xform2 c_thstack_saveas
+  write = xform3 c_thstack_write
+instance ITObject TAttParticle where
+  getName = xform0 c_tattparticle_getname
+  draw = xform1 c_tattparticle_draw
+  saveAs = xform2 c_tattparticle_saveas
+  write = xform3 c_tattparticle_write
+instance ITObject TNamed where
+  getName = xform0 c_tnamed_getname
+  draw = xform1 c_tnamed_draw
+  saveAs = xform2 c_tnamed_saveas
+  write = xform3 c_tnamed_write
+
+instance ITPad TSlider where
+instance ITPad TEvePad where
+instance ITPad TInspectCanvas where
+instance ITPad TDialogCanvas where
+instance ITPad TCanvas where
+instance ITPad TGroupButton where
+instance ITPad TButton where
+
+instance ITPave TPaveClass where
+instance ITPave TPaveLabel where
+instance ITPave TLegend where
+instance ITPave TPavesText where
+instance ITPave TPaveStats where
+instance ITPave TDiamond where
+instance ITPave TPaveText where
+
+instance ITPaveLabel TPaveClass where
+
+instance ITPaveText TPavesText where
+instance ITPaveText TPaveStats where
+instance ITPaveText TDiamond where
+
+instance ITPolyLine TCurlyArc where
+instance ITPolyLine TCurlyLine where
+
+instance ITQObject TRint where
+instance ITQObject TApplication where
+instance ITQObject TSlider where
+instance ITQObject TEvePad where
+instance ITQObject TInspectCanvas where
+instance ITQObject TDialogCanvas where
+instance ITQObject TCanvas where
+instance ITQObject TGroupButton where
+instance ITQObject TButton where
+instance ITQObject TPad where
+instance ITQObject TVirtualPad where
+
+instance ITShape TXTRU where
+instance ITShape TSPHE where
+instance ITShape TPolyLineShape where
+instance ITShape TPCON where
+instance ITShape TTUBE where
+instance ITShape TBRIK where
+
+instance ITText TLatex where
+
+instance ITTree TTreeSQL where
+instance ITTree TNtupleD where
+instance ITTree TNtuple where
+instance ITTree TChain where
+
+instance ITVirtualPad TSlider where
+  getFrame = xform0 c_tslider_getframe
+  range = xform4 c_tslider_range
+instance ITVirtualPad TEvePad where
+  getFrame = xform0 c_tevepad_getframe
+  range = xform4 c_tevepad_range
+instance ITVirtualPad TInspectCanvas where
+  getFrame = xform0 c_tinspectcanvas_getframe
+  range = xform4 c_tinspectcanvas_range
+instance ITVirtualPad TDialogCanvas where
+  getFrame = xform0 c_tdialogcanvas_getframe
+  range = xform4 c_tdialogcanvas_range
+instance ITVirtualPad TCanvas where
+  getFrame = xform0 c_tcanvas_getframe
+  range = xform4 c_tcanvas_range
+instance ITVirtualPad TGroupButton where
+  getFrame = xform0 c_tgroupbutton_getframe
+  range = xform4 c_tgroupbutton_range
+instance ITVirtualPad TButton where
+  getFrame = xform0 c_tbutton_getframe
+  range = xform4 c_tbutton_range
+instance ITVirtualPad TPad where
+  getFrame = xform0 c_tpad_getframe
+  range = xform4 c_tpad_range
+
+instance ITVirtualTreePlayer TTreePlayer where
+
+instance ITWbox TSliderBox where
+  setBorderMode = xform1 c_tsliderbox_setbordermode
+instance ITWbox TFrame where
+  setBorderMode = xform1 c_tframe_setbordermode
+
+newTObject :: IO TObject
+newTObject = xformnull c_tobject_newtobject
+
+newTNamed :: String -> String -> IO TNamed
+newTNamed = xform1 c_tnamed_newtnamed
+
+newTFormula :: String -> String -> IO TFormula
+newTFormula = xform1 c_tformula_newtformula
+
+
+
+newTAttAxis :: IO TAttAxis
+newTAttAxis = xformnull c_tattaxis_newtattaxis
+
+
+
+newTAttCanvas :: IO TAttCanvas
+newTAttCanvas = xformnull c_tattcanvas_newtattcanvas
+
+newTAttFill :: Int -> Int -> IO TAttFill
+newTAttFill = xform1 c_tattfill_newtattfill
+
+
+
+newTAttLine :: Int -> Int -> Int -> IO TAttLine
+newTAttLine = xform2 c_tattline_newtattline
+
+newTAttMarker :: Int -> Int -> Int -> IO TAttMarker
+newTAttMarker = xform2 c_tattmarker_newtattmarker
+
+newTAttPad :: IO TAttPad
+newTAttPad = xformnull c_tattpad_newtattpad
+
+
+
+newTAttText :: Int -> Double -> Int -> Int -> Double -> IO TAttText
+newTAttText = xform4 c_tatttext_newtatttext
+
+newTHStack :: String -> String -> IO THStack
+newTHStack = xform1 c_thstack_newthstack
+
+newTF1 :: String -> String -> Double -> Double -> IO TF1
+newTF1 = xform3 c_tf1_newtf1
+
+newTGraph :: Int -> [Double] -> [Double] -> IO TGraph
+newTGraph = xform2 c_tgraph_newtgraph
+
+newTGraphAsymmErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphAsymmErrors
+newTGraphAsymmErrors = xform6 c_tgraphasymmerrors_newtgraphasymmerrors
+
+newTCutG :: String -> Int -> [Double] -> [Double] -> IO TCutG
+newTCutG = xform3 c_tcutg_newtcutg
+
+newTGraphBentErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphBentErrors
+newTGraphBentErrors = xform10 c_tgraphbenterrors_newtgraphbenterrors
+
+newTGraphErrors :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphErrors
+newTGraphErrors = xform4 c_tgrapherrors_newtgrapherrors
+
+newTGraphPolar :: Int -> [Double] -> [Double] -> [Double] -> [Double] -> IO TGraphPolar
+newTGraphPolar = xform4 c_tgraphpolar_newtgraphpolar
+
+newTGraphQQ :: Int -> [Double] -> Int -> [Double] -> IO TGraphQQ
+newTGraphQQ = xform3 c_tgraphqq_newtgraphqq
+
+newTEllipse :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TEllipse
+newTEllipse = xform6 c_tellipse_newtellipse
+
+newTArc :: Double -> Double -> Double -> Double -> Double -> IO TArc
+newTArc = xform4 c_tarc_newtarc
+
+newTCrown :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCrown
+newTCrown = xform5 c_tcrown_newtcrown
+
+newTLine :: Double -> Double -> Double -> Double -> IO TLine
+newTLine = xform3 c_tline_newtline
+
+newTArrow :: Double -> Double -> Double -> Double -> Double -> String -> IO TArrow
+newTArrow = xform5 c_tarrow_newtarrow
+
+newTGaxis :: Double -> Double -> Double -> Double -> Double -> Double -> Int -> String -> Double -> IO TGaxis
+newTGaxis = xform8 c_tgaxis_newtgaxis
+
+newTShape :: String -> String -> String -> IO TShape
+newTShape = xform2 c_tshape_newtshape
+
+newTBRIK :: String -> String -> String -> Double -> Double -> Double -> IO TBRIK
+newTBRIK = xform5 c_tbrik_newtbrik
+
+newTTUBE :: String -> String -> String -> Double -> Double -> Double -> Double -> IO TTUBE
+newTTUBE = xform6 c_ttube_newttube
+
+newTPCON :: String -> String -> String -> Double -> Double -> Int -> IO TPCON
+newTPCON = xform5 c_tpcon_newtpcon
+
+
+
+newTSPHE :: String -> String -> String -> Double -> Double -> Double -> Double -> Double -> Double -> IO TSPHE
+newTSPHE = xform8 c_tsphe_newtsphe
+
+newTXTRU :: String -> String -> String -> Int -> Int -> IO TXTRU
+newTXTRU = xform4 c_txtru_newtxtru
+
+newTBox :: Double -> Double -> Double -> Double -> IO TBox
+newTBox = xform3 c_tbox_newtbox
+
+newTPave :: Double -> Double -> Double -> Double -> Int -> String -> IO TPave
+newTPave = xform5 c_tpave_newtpave
+
+newTPaveText :: Double -> Double -> Double -> Double -> String -> IO TPaveText
+newTPaveText = xform4 c_tpavetext_newtpavetext
+
+newTDiamond :: Double -> Double -> Double -> Double -> IO TDiamond
+newTDiamond = xform3 c_tdiamond_newtdiamond
+
+newTPaveStats :: Double -> Double -> Double -> Double -> String -> IO TPaveStats
+newTPaveStats = xform4 c_tpavestats_newtpavestats
+
+newTPavesText :: Double -> Double -> Double -> Double -> Int -> String -> IO TPavesText
+newTPavesText = xform5 c_tpavestext_newtpavestext
+
+newTLegend :: Double -> Double -> Double -> Double -> String -> String -> IO TLegend
+newTLegend = xform5 c_tlegend_newtlegend
+
+newTPaveLabel :: Double -> Double -> Double -> Double -> String -> String -> IO TPaveLabel
+newTPaveLabel = xform5 c_tpavelabel_newtpavelabel
+
+
+
+newTWbox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TWbox
+newTWbox = xform6 c_twbox_newtwbox
+
+newTFrame :: Double -> Double -> Double -> Double -> IO TFrame
+newTFrame = xform3 c_tframe_newtframe
+
+newTSliderBox :: Double -> Double -> Double -> Double -> Int -> Int -> Int -> IO TSliderBox
+newTSliderBox = xform6 c_tsliderbox_newtsliderbox
+
+newTTree :: String -> String -> Int -> IO TTree
+newTTree = xform2 c_ttree_newttree
+
+newTChain :: String -> String -> IO TChain
+newTChain = xform1 c_tchain_newtchain
+
+newTNtuple :: String -> String -> String -> Int -> IO TNtuple
+newTNtuple = xform3 c_tntuple_newtntuple
+
+newTNtupleD :: String -> String -> String -> Int -> IO TNtupleD
+newTNtupleD = xform3 c_tntupled_newtntupled
+
+
+
+newTPolyLine :: Int -> [Double] -> [Double] -> String -> IO TPolyLine
+newTPolyLine = xform3 c_tpolyline_newtpolyline
+
+newTCurlyLine :: Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyLine
+newTCurlyLine = xform5 c_tcurlyline_newtcurlyline
+
+newTCurlyArc :: Double -> Double -> Double -> Double -> Double -> Double -> Double -> IO TCurlyArc
+newTCurlyArc = xform6 c_tcurlyarc_newtcurlyarc
+
+
+
+
+
+newTLatex :: Double -> Double -> String -> IO TLatex
+newTLatex = xform2 c_tlatex_newtlatex
+
+
+
+
+
+
+
+newTFile :: String -> String -> String -> Int -> IO TFile
+newTFile = xform3 c_tfile_newtfile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+newTH1F :: String -> String -> Int -> Double -> Double -> IO TH1F
+newTH1F = xform4 c_th1f_newth1f
+
+
+
+
+
+
+
+
+
+newTH2F :: String -> String -> Int -> Double -> Double -> Int -> Double -> Double -> IO TH2F
+newTH2F = xform7 c_th2f_newth2f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+newTCanvas :: String -> String -> Int -> Int -> IO TCanvas
+newTCanvas = xform3 c_tcanvas_newtcanvas
+
+
+
+
+
+
+
+
+
+newTApplication :: String -> [Int] -> [String] -> IO TApplication
+newTApplication = xform2 c_tapplication_newtapplication
+
+newTRint :: String -> [Int] -> [String] -> IO TRint
+newTRint = xform2 c_trint_newtrint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+tLatexDrawLatex :: TLatex -> Double -> Double -> String -> IO TLatex
+tLatexDrawLatex = xform3 c_tlatex_tlatexdrawlatex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/HROOT/Function.hsc b/src/HROOT/Function.hsc
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Function.hsc
@@ -0,0 +1,1866 @@
+{-# LANGUAGE ForeignFunctionInterface #-}
+
+module HROOT.Function where
+
+import Foreign.C            
+import Foreign.Ptr
+
+import HROOT.Type
+
+#include "HROOT.h"
+
+foreign import ccall "HROOT.h TObject_newTObject" c_tobject_newtobject 
+  :: IO (Ptr RawTObject)
+foreign import ccall "HROOT.h TObject_GetName" c_tobject_getname 
+  :: (Ptr RawTObject) -> IO CString
+foreign import ccall "HROOT.h TObject_Draw" c_tobject_draw 
+  :: (Ptr RawTObject) -> CString -> IO ()
+foreign import ccall "HROOT.h TObject_SaveAs" c_tobject_saveas 
+  :: (Ptr RawTObject) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TObject_Write" c_tobject_write 
+  :: (Ptr RawTObject) -> CString -> CInt -> CInt -> IO CInt
+
+
+foreign import ccall "HROOT.h TNamed_GetName" c_tnamed_getname 
+  :: (Ptr RawTNamed) -> IO CString
+foreign import ccall "HROOT.h TNamed_Draw" c_tnamed_draw 
+  :: (Ptr RawTNamed) -> CString -> IO ()
+foreign import ccall "HROOT.h TNamed_SaveAs" c_tnamed_saveas 
+  :: (Ptr RawTNamed) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNamed_Write" c_tnamed_write 
+  :: (Ptr RawTNamed) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNamed_newTNamed" c_tnamed_newtnamed 
+  :: CString -> CString -> IO (Ptr RawTNamed)
+foreign import ccall "HROOT.h TNamed_SetTitle" c_tnamed_settitle 
+  :: (Ptr RawTNamed) -> CString -> IO ()
+
+
+foreign import ccall "HROOT.h TFormula_newTFormula" c_tformula_newtformula 
+  :: CString -> CString -> IO (Ptr RawTFormula)
+foreign import ccall "HROOT.h TFormula_GetParameter" c_tformula_getparameter 
+  :: (Ptr RawTFormula) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TFormula_SetParameter" c_tformula_setparameter 
+  :: (Ptr RawTFormula) -> CInt -> CDouble -> IO ()
+
+
+
+
+foreign import ccall "HROOT.h TAttAxis_newTAttAxis" c_tattaxis_newtattaxis 
+  :: IO (Ptr RawTAttAxis)
+foreign import ccall "HROOT.h TAttAxis_SetLabelColor" c_tattaxis_setlabelcolor 
+  :: (Ptr RawTAttAxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetLabelSize" c_tattaxis_setlabelsize 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetTickLength" c_tattaxis_setticklength 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetTitleOffset" c_tattaxis_settitleoffset 
+  :: (Ptr RawTAttAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAttAxis_SetNdivisions" c_tattaxis_setndivisions 
+  :: (Ptr RawTAttAxis) -> CInt -> CInt -> IO ()
+
+
+
+
+foreign import ccall "HROOT.h TAttCanvas_newTAttCanvas" c_tattcanvas_newtattcanvas 
+  :: IO (Ptr RawTAttCanvas)
+
+
+foreign import ccall "HROOT.h TAttFill_newTAttFill" c_tattfill_newtattfill 
+  :: CInt -> CInt -> IO (Ptr RawTAttFill)
+foreign import ccall "HROOT.h TAttFill_SetFillColor" c_tattfill_setfillcolor 
+  :: (Ptr RawTAttFill) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttFill_SetFillStyle" c_tattfill_setfillstyle 
+  :: (Ptr RawTAttFill) -> CInt -> IO ()
+
+
+
+
+foreign import ccall "HROOT.h TAttLine_newTAttLine" c_tattline_newtattline 
+  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttLine)
+foreign import ccall "HROOT.h TAttLine_SetLineColor" c_tattline_setlinecolor 
+  :: (Ptr RawTAttLine) -> CInt -> IO ()
+
+
+foreign import ccall "HROOT.h TAttMarker_newTAttMarker" c_tattmarker_newtattmarker 
+  :: CInt -> CInt -> CInt -> IO (Ptr RawTAttMarker)
+
+
+foreign import ccall "HROOT.h TAttPad_newTAttPad" c_tattpad_newtattpad 
+  :: IO (Ptr RawTAttPad)
+
+
+foreign import ccall "HROOT.h TAttParticle_SetTitle" c_tattparticle_settitle 
+  :: (Ptr RawTAttParticle) -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_GetName" c_tattparticle_getname 
+  :: (Ptr RawTAttParticle) -> IO CString
+foreign import ccall "HROOT.h TAttParticle_Draw" c_tattparticle_draw 
+  :: (Ptr RawTAttParticle) -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_SaveAs" c_tattparticle_saveas 
+  :: (Ptr RawTAttParticle) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TAttParticle_Write" c_tattparticle_write 
+  :: (Ptr RawTAttParticle) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TAttText_newTAttText" c_tatttext_newtatttext 
+  :: CInt -> CDouble -> CInt -> CInt -> CDouble -> IO (Ptr RawTAttText)
+foreign import ccall "HROOT.h TAttText_SetTextColor" c_tatttext_settextcolor 
+  :: (Ptr RawTAttText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttText_SetTextAlign" c_tatttext_settextalign 
+  :: (Ptr RawTAttText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAttText_SetTextSize" c_tatttext_settextsize 
+  :: (Ptr RawTAttText) -> CDouble -> IO ()
+
+
+foreign import ccall "HROOT.h THStack_SetTitle" c_thstack_settitle 
+  :: (Ptr RawTHStack) -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_GetName" c_thstack_getname 
+  :: (Ptr RawTHStack) -> IO CString
+foreign import ccall "HROOT.h THStack_Draw" c_thstack_draw 
+  :: (Ptr RawTHStack) -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_SaveAs" c_thstack_saveas 
+  :: (Ptr RawTHStack) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h THStack_Write" c_thstack_write 
+  :: (Ptr RawTHStack) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h THStack_newTHStack" c_thstack_newthstack 
+  :: CString -> CString -> IO (Ptr RawTHStack)
+
+
+foreign import ccall "HROOT.h TF1_GetParameter" c_tf1_getparameter 
+  :: (Ptr RawTF1) -> CInt -> IO CDouble
+foreign import ccall "HROOT.h TF1_SetParameter" c_tf1_setparameter 
+  :: (Ptr RawTF1) -> CInt -> CDouble -> IO ()
+foreign import ccall "HROOT.h TF1_SetLineColor" c_tf1_setlinecolor 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_SetFillColor" c_tf1_setfillcolor 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_SetFillStyle" c_tf1_setfillstyle 
+  :: (Ptr RawTF1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TF1_newTF1" c_tf1_newtf1 
+  :: CString -> CString -> CDouble -> CDouble -> IO (Ptr RawTF1)
+
+
+foreign import ccall "HROOT.h TGraph_SetTitle" c_tgraph_settitle 
+  :: (Ptr RawTGraph) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_SetLineColor" c_tgraph_setlinecolor 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_SetFillColor" c_tgraph_setfillcolor 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_SetFillStyle" c_tgraph_setfillstyle 
+  :: (Ptr RawTGraph) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraph_GetName" c_tgraph_getname 
+  :: (Ptr RawTGraph) -> IO CString
+foreign import ccall "HROOT.h TGraph_Draw" c_tgraph_draw 
+  :: (Ptr RawTGraph) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_SaveAs" c_tgraph_saveas 
+  :: (Ptr RawTGraph) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraph_Write" c_tgraph_write 
+  :: (Ptr RawTGraph) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraph_newTGraph" c_tgraph_newtgraph 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraph)
+
+
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetTitle" c_tgraphasymmerrors_settitle 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetLineColor" c_tgraphasymmerrors_setlinecolor 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillColor" c_tgraphasymmerrors_setfillcolor 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SetFillStyle" c_tgraphasymmerrors_setfillstyle 
+  :: (Ptr RawTGraphAsymmErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_GetName" c_tgraphasymmerrors_getname 
+  :: (Ptr RawTGraphAsymmErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphAsymmErrors_Draw" c_tgraphasymmerrors_draw 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_SaveAs" c_tgraphasymmerrors_saveas 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphAsymmErrors_Write" c_tgraphasymmerrors_write 
+  :: (Ptr RawTGraphAsymmErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphAsymmErrors_newTGraphAsymmErrors" c_tgraphasymmerrors_newtgraphasymmerrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphAsymmErrors)
+
+
+foreign import ccall "HROOT.h TCutG_SetTitle" c_tcutg_settitle 
+  :: (Ptr RawTCutG) -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_SetLineColor" c_tcutg_setlinecolor 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_SetFillColor" c_tcutg_setfillcolor 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_SetFillStyle" c_tcutg_setfillstyle 
+  :: (Ptr RawTCutG) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCutG_GetName" c_tcutg_getname 
+  :: (Ptr RawTCutG) -> IO CString
+foreign import ccall "HROOT.h TCutG_Draw" c_tcutg_draw 
+  :: (Ptr RawTCutG) -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_SaveAs" c_tcutg_saveas 
+  :: (Ptr RawTCutG) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCutG_Write" c_tcutg_write 
+  :: (Ptr RawTCutG) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCutG_newTCutG" c_tcutg_newtcutg 
+  :: CString -> CInt -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTCutG)
+
+
+foreign import ccall "HROOT.h TGraphBentErrors_SetTitle" c_tgraphbenterrors_settitle 
+  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetLineColor" c_tgraphbenterrors_setlinecolor 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetFillColor" c_tgraphbenterrors_setfillcolor 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SetFillStyle" c_tgraphbenterrors_setfillstyle 
+  :: (Ptr RawTGraphBentErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_GetName" c_tgraphbenterrors_getname 
+  :: (Ptr RawTGraphBentErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphBentErrors_Draw" c_tgraphbenterrors_draw 
+  :: (Ptr RawTGraphBentErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_SaveAs" c_tgraphbenterrors_saveas 
+  :: (Ptr RawTGraphBentErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphBentErrors_Write" c_tgraphbenterrors_write 
+  :: (Ptr RawTGraphBentErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphBentErrors_newTGraphBentErrors" c_tgraphbenterrors_newtgraphbenterrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphBentErrors)
+
+
+foreign import ccall "HROOT.h TGraphErrors_SetTitle" c_tgrapherrors_settitle 
+  :: (Ptr RawTGraphErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetLineColor" c_tgrapherrors_setlinecolor 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetFillColor" c_tgrapherrors_setfillcolor 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SetFillStyle" c_tgrapherrors_setfillstyle 
+  :: (Ptr RawTGraphErrors) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_GetName" c_tgrapherrors_getname 
+  :: (Ptr RawTGraphErrors) -> IO CString
+foreign import ccall "HROOT.h TGraphErrors_Draw" c_tgrapherrors_draw 
+  :: (Ptr RawTGraphErrors) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_SaveAs" c_tgrapherrors_saveas 
+  :: (Ptr RawTGraphErrors) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphErrors_Write" c_tgrapherrors_write 
+  :: (Ptr RawTGraphErrors) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphErrors_newTGraphErrors" c_tgrapherrors_newtgrapherrors 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphErrors)
+
+
+foreign import ccall "HROOT.h TGraphPolar_SetTitle" c_tgraphpolar_settitle 
+  :: (Ptr RawTGraphPolar) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetLineColor" c_tgraphpolar_setlinecolor 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetFillColor" c_tgraphpolar_setfillcolor 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SetFillStyle" c_tgraphpolar_setfillstyle 
+  :: (Ptr RawTGraphPolar) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_GetName" c_tgraphpolar_getname 
+  :: (Ptr RawTGraphPolar) -> IO CString
+foreign import ccall "HROOT.h TGraphPolar_Draw" c_tgraphpolar_draw 
+  :: (Ptr RawTGraphPolar) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_SaveAs" c_tgraphpolar_saveas 
+  :: (Ptr RawTGraphPolar) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphPolar_Write" c_tgraphpolar_write 
+  :: (Ptr RawTGraphPolar) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphPolar_newTGraphPolar" c_tgraphpolar_newtgraphpolar 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> (Ptr CDouble) -> IO (Ptr RawTGraphPolar)
+
+
+foreign import ccall "HROOT.h TGraphQQ_SetTitle" c_tgraphqq_settitle 
+  :: (Ptr RawTGraphQQ) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetLineColor" c_tgraphqq_setlinecolor 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetFillColor" c_tgraphqq_setfillcolor 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SetFillStyle" c_tgraphqq_setfillstyle 
+  :: (Ptr RawTGraphQQ) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_GetName" c_tgraphqq_getname 
+  :: (Ptr RawTGraphQQ) -> IO CString
+foreign import ccall "HROOT.h TGraphQQ_Draw" c_tgraphqq_draw 
+  :: (Ptr RawTGraphQQ) -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_SaveAs" c_tgraphqq_saveas 
+  :: (Ptr RawTGraphQQ) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGraphQQ_Write" c_tgraphqq_write 
+  :: (Ptr RawTGraphQQ) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGraphQQ_newTGraphQQ" c_tgraphqq_newtgraphqq 
+  :: CInt -> (Ptr CDouble) -> CInt -> (Ptr CDouble) -> IO (Ptr RawTGraphQQ)
+
+
+foreign import ccall "HROOT.h TEllipse_GetName" c_tellipse_getname 
+  :: (Ptr RawTEllipse) -> IO CString
+foreign import ccall "HROOT.h TEllipse_Draw" c_tellipse_draw 
+  :: (Ptr RawTEllipse) -> CString -> IO ()
+foreign import ccall "HROOT.h TEllipse_SaveAs" c_tellipse_saveas 
+  :: (Ptr RawTEllipse) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEllipse_Write" c_tellipse_write 
+  :: (Ptr RawTEllipse) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TEllipse_SetLineColor" c_tellipse_setlinecolor 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_SetFillColor" c_tellipse_setfillcolor 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_SetFillStyle" c_tellipse_setfillstyle 
+  :: (Ptr RawTEllipse) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEllipse_newTEllipse" c_tellipse_newtellipse 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTEllipse)
+
+foreign import ccall "HROOT.h TArc_GetName" c_tarc_getname 
+  :: (Ptr RawTArc) -> IO CString
+foreign import ccall "HROOT.h TArc_Draw" c_tarc_draw 
+  :: (Ptr RawTArc) -> CString -> IO ()
+foreign import ccall "HROOT.h TArc_SaveAs" c_tarc_saveas 
+  :: (Ptr RawTArc) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TArc_Write" c_tarc_write 
+  :: (Ptr RawTArc) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TArc_SetLineColor" c_tarc_setlinecolor 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_SetFillColor" c_tarc_setfillcolor 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_SetFillStyle" c_tarc_setfillstyle 
+  :: (Ptr RawTArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArc_newTArc" c_tarc_newtarc 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTArc)
+
+
+foreign import ccall "HROOT.h TCrown_GetName" c_tcrown_getname 
+  :: (Ptr RawTCrown) -> IO CString
+foreign import ccall "HROOT.h TCrown_Draw" c_tcrown_draw 
+  :: (Ptr RawTCrown) -> CString -> IO ()
+foreign import ccall "HROOT.h TCrown_SaveAs" c_tcrown_saveas 
+  :: (Ptr RawTCrown) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCrown_Write" c_tcrown_write 
+  :: (Ptr RawTCrown) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCrown_SetLineColor" c_tcrown_setlinecolor 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_SetFillColor" c_tcrown_setfillcolor 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_SetFillStyle" c_tcrown_setfillstyle 
+  :: (Ptr RawTCrown) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCrown_newTCrown" c_tcrown_newtcrown 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCrown)
+
+
+foreign import ccall "HROOT.h TLine_GetName" c_tline_getname 
+  :: (Ptr RawTLine) -> IO CString
+foreign import ccall "HROOT.h TLine_Draw" c_tline_draw 
+  :: (Ptr RawTLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TLine_SaveAs" c_tline_saveas 
+  :: (Ptr RawTLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLine_Write" c_tline_write 
+  :: (Ptr RawTLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLine_SetLineColor" c_tline_setlinecolor 
+  :: (Ptr RawTLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLine_newTLine" c_tline_newtline 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTLine)
+
+
+foreign import ccall "HROOT.h TArrow_SetFillColor" c_tarrow_setfillcolor 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_SetFillStyle" c_tarrow_setfillstyle 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_GetName" c_tarrow_getname 
+  :: (Ptr RawTArrow) -> IO CString
+foreign import ccall "HROOT.h TArrow_Draw" c_tarrow_draw 
+  :: (Ptr RawTArrow) -> CString -> IO ()
+foreign import ccall "HROOT.h TArrow_SaveAs" c_tarrow_saveas 
+  :: (Ptr RawTArrow) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TArrow_Write" c_tarrow_write 
+  :: (Ptr RawTArrow) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TArrow_SetLineColor" c_tarrow_setlinecolor 
+  :: (Ptr RawTArrow) -> CInt -> IO ()
+foreign import ccall "HROOT.h TArrow_newTArrow" c_tarrow_newtarrow 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTArrow)
+
+
+foreign import ccall "HROOT.h TGaxis_SetTextColor" c_tgaxis_settextcolor 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_SetTextAlign" c_tgaxis_settextalign 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_SetTextSize" c_tgaxis_settextsize 
+  :: (Ptr RawTGaxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGaxis_GetName" c_tgaxis_getname 
+  :: (Ptr RawTGaxis) -> IO CString
+foreign import ccall "HROOT.h TGaxis_Draw" c_tgaxis_draw 
+  :: (Ptr RawTGaxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TGaxis_SaveAs" c_tgaxis_saveas 
+  :: (Ptr RawTGaxis) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGaxis_Write" c_tgaxis_write 
+  :: (Ptr RawTGaxis) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGaxis_SetLineColor" c_tgaxis_setlinecolor 
+  :: (Ptr RawTGaxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGaxis_newTGaxis" c_tgaxis_newtgaxis 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> CDouble -> IO (Ptr RawTGaxis)
+
+
+foreign import ccall "HROOT.h TShape_SetTitle" c_tshape_settitle 
+  :: (Ptr RawTShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_SetLineColor" c_tshape_setlinecolor 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_SetFillColor" c_tshape_setfillcolor 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_SetFillStyle" c_tshape_setfillstyle 
+  :: (Ptr RawTShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TShape_GetName" c_tshape_getname 
+  :: (Ptr RawTShape) -> IO CString
+foreign import ccall "HROOT.h TShape_Draw" c_tshape_draw 
+  :: (Ptr RawTShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_SaveAs" c_tshape_saveas 
+  :: (Ptr RawTShape) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TShape_Write" c_tshape_write 
+  :: (Ptr RawTShape) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TShape_newTShape" c_tshape_newtshape 
+  :: CString -> CString -> CString -> IO (Ptr RawTShape)
+
+
+foreign import ccall "HROOT.h TBRIK_SetTitle" c_tbrik_settitle 
+  :: (Ptr RawTBRIK) -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetLineColor" c_tbrik_setlinecolor 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetFillColor" c_tbrik_setfillcolor 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_SetFillStyle" c_tbrik_setfillstyle 
+  :: (Ptr RawTBRIK) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBRIK_GetName" c_tbrik_getname 
+  :: (Ptr RawTBRIK) -> IO CString
+foreign import ccall "HROOT.h TBRIK_Draw" c_tbrik_draw 
+  :: (Ptr RawTBRIK) -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_SaveAs" c_tbrik_saveas 
+  :: (Ptr RawTBRIK) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBRIK_Write" c_tbrik_write 
+  :: (Ptr RawTBRIK) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TBRIK_newTBRIK" c_tbrik_newtbrik 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBRIK)
+
+
+foreign import ccall "HROOT.h TTUBE_SetTitle" c_ttube_settitle 
+  :: (Ptr RawTTUBE) -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetLineColor" c_ttube_setlinecolor 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetFillColor" c_ttube_setfillcolor 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_SetFillStyle" c_ttube_setfillstyle 
+  :: (Ptr RawTTUBE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTUBE_GetName" c_ttube_getname 
+  :: (Ptr RawTTUBE) -> IO CString
+foreign import ccall "HROOT.h TTUBE_Draw" c_ttube_draw 
+  :: (Ptr RawTTUBE) -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_SaveAs" c_ttube_saveas 
+  :: (Ptr RawTTUBE) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTUBE_Write" c_ttube_write 
+  :: (Ptr RawTTUBE) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTUBE_newTTUBE" c_ttube_newttube 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTTUBE)
+
+
+foreign import ccall "HROOT.h TPCON_SetTitle" c_tpcon_settitle 
+  :: (Ptr RawTPCON) -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_SetLineColor" c_tpcon_setlinecolor 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_SetFillColor" c_tpcon_setfillcolor 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_SetFillStyle" c_tpcon_setfillstyle 
+  :: (Ptr RawTPCON) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPCON_GetName" c_tpcon_getname 
+  :: (Ptr RawTPCON) -> IO CString
+foreign import ccall "HROOT.h TPCON_Draw" c_tpcon_draw 
+  :: (Ptr RawTPCON) -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_SaveAs" c_tpcon_saveas 
+  :: (Ptr RawTPCON) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPCON_Write" c_tpcon_write 
+  :: (Ptr RawTPCON) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPCON_newTPCON" c_tpcon_newtpcon 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CInt -> IO (Ptr RawTPCON)
+
+
+foreign import ccall "HROOT.h TPolyLineShape_SetTitle" c_tpolylineshape_settitle 
+  :: (Ptr RawTPolyLineShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_SetLineColor" c_tpolylineshape_setlinecolor 
+  :: (Ptr RawTPolyLineShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_SetFillColor" c_tpolylineshape_setfillcolor 
+  :: (Ptr RawTPolyLineShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_SetFillStyle" c_tpolylineshape_setfillstyle 
+  :: (Ptr RawTPolyLineShape) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_GetName" c_tpolylineshape_getname 
+  :: (Ptr RawTPolyLineShape) -> IO CString
+foreign import ccall "HROOT.h TPolyLineShape_Draw" c_tpolylineshape_draw 
+  :: (Ptr RawTPolyLineShape) -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_SaveAs" c_tpolylineshape_saveas 
+  :: (Ptr RawTPolyLineShape) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLineShape_Write" c_tpolylineshape_write 
+  :: (Ptr RawTPolyLineShape) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TSPHE_SetTitle" c_tsphe_settitle 
+  :: (Ptr RawTSPHE) -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetLineColor" c_tsphe_setlinecolor 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetFillColor" c_tsphe_setfillcolor 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_SetFillStyle" c_tsphe_setfillstyle 
+  :: (Ptr RawTSPHE) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSPHE_GetName" c_tsphe_getname 
+  :: (Ptr RawTSPHE) -> IO CString
+foreign import ccall "HROOT.h TSPHE_Draw" c_tsphe_draw 
+  :: (Ptr RawTSPHE) -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_SaveAs" c_tsphe_saveas 
+  :: (Ptr RawTSPHE) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSPHE_Write" c_tsphe_write 
+  :: (Ptr RawTSPHE) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSPHE_newTSPHE" c_tsphe_newtsphe 
+  :: CString -> CString -> CString -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTSPHE)
+
+
+foreign import ccall "HROOT.h TXTRU_SetTitle" c_txtru_settitle 
+  :: (Ptr RawTXTRU) -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetLineColor" c_txtru_setlinecolor 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetFillColor" c_txtru_setfillcolor 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_SetFillStyle" c_txtru_setfillstyle 
+  :: (Ptr RawTXTRU) -> CInt -> IO ()
+foreign import ccall "HROOT.h TXTRU_GetName" c_txtru_getname 
+  :: (Ptr RawTXTRU) -> IO CString
+foreign import ccall "HROOT.h TXTRU_Draw" c_txtru_draw 
+  :: (Ptr RawTXTRU) -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_SaveAs" c_txtru_saveas 
+  :: (Ptr RawTXTRU) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TXTRU_Write" c_txtru_write 
+  :: (Ptr RawTXTRU) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TXTRU_newTXTRU" c_txtru_newtxtru 
+  :: CString -> CString -> CString -> CInt -> CInt -> IO (Ptr RawTXTRU)
+
+
+foreign import ccall "HROOT.h TBox_GetName" c_tbox_getname 
+  :: (Ptr RawTBox) -> IO CString
+foreign import ccall "HROOT.h TBox_Draw" c_tbox_draw 
+  :: (Ptr RawTBox) -> CString -> IO ()
+foreign import ccall "HROOT.h TBox_SaveAs" c_tbox_saveas 
+  :: (Ptr RawTBox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBox_Write" c_tbox_write 
+  :: (Ptr RawTBox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TBox_SetLineColor" c_tbox_setlinecolor 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_SetFillColor" c_tbox_setfillcolor 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_SetFillStyle" c_tbox_setfillstyle 
+  :: (Ptr RawTBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBox_newTBox" c_tbox_newtbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTBox)
+
+
+foreign import ccall "HROOT.h TPave_GetName" c_tpave_getname 
+  :: (Ptr RawTPave) -> IO CString
+foreign import ccall "HROOT.h TPave_Draw" c_tpave_draw 
+  :: (Ptr RawTPave) -> CString -> IO ()
+foreign import ccall "HROOT.h TPave_SaveAs" c_tpave_saveas 
+  :: (Ptr RawTPave) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPave_Write" c_tpave_write 
+  :: (Ptr RawTPave) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPave_SetLineColor" c_tpave_setlinecolor 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_SetFillColor" c_tpave_setfillcolor 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_SetFillStyle" c_tpave_setfillstyle 
+  :: (Ptr RawTPave) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPave_newTPave" c_tpave_newtpave 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPave)
+
+
+foreign import ccall "HROOT.h TPaveText_SetTextColor" c_tpavetext_settextcolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetTextAlign" c_tpavetext_settextalign 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetTextSize" c_tpavetext_settextsize 
+  :: (Ptr RawTPaveText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveText_GetName" c_tpavetext_getname 
+  :: (Ptr RawTPaveText) -> IO CString
+foreign import ccall "HROOT.h TPaveText_Draw" c_tpavetext_draw 
+  :: (Ptr RawTPaveText) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveText_SaveAs" c_tpavetext_saveas 
+  :: (Ptr RawTPaveText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveText_Write" c_tpavetext_write 
+  :: (Ptr RawTPaveText) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveText_SetLineColor" c_tpavetext_setlinecolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetFillColor" c_tpavetext_setfillcolor 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_SetFillStyle" c_tpavetext_setfillstyle 
+  :: (Ptr RawTPaveText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveText_newTPaveText" c_tpavetext_newtpavetext 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveText)
+
+
+foreign import ccall "HROOT.h TDiamond_SetTextColor" c_tdiamond_settextcolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetTextAlign" c_tdiamond_settextalign 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetTextSize" c_tdiamond_settextsize 
+  :: (Ptr RawTDiamond) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDiamond_GetName" c_tdiamond_getname 
+  :: (Ptr RawTDiamond) -> IO CString
+foreign import ccall "HROOT.h TDiamond_Draw" c_tdiamond_draw 
+  :: (Ptr RawTDiamond) -> CString -> IO ()
+foreign import ccall "HROOT.h TDiamond_SaveAs" c_tdiamond_saveas 
+  :: (Ptr RawTDiamond) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDiamond_Write" c_tdiamond_write 
+  :: (Ptr RawTDiamond) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDiamond_SetLineColor" c_tdiamond_setlinecolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetFillColor" c_tdiamond_setfillcolor 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_SetFillStyle" c_tdiamond_setfillstyle 
+  :: (Ptr RawTDiamond) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDiamond_newTDiamond" c_tdiamond_newtdiamond 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTDiamond)
+
+
+foreign import ccall "HROOT.h TPaveStats_SetTextColor" c_tpavestats_settextcolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetTextAlign" c_tpavestats_settextalign 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetTextSize" c_tpavestats_settextsize 
+  :: (Ptr RawTPaveStats) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveStats_GetName" c_tpavestats_getname 
+  :: (Ptr RawTPaveStats) -> IO CString
+foreign import ccall "HROOT.h TPaveStats_Draw" c_tpavestats_draw 
+  :: (Ptr RawTPaveStats) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SaveAs" c_tpavestats_saveas 
+  :: (Ptr RawTPaveStats) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveStats_Write" c_tpavestats_write 
+  :: (Ptr RawTPaveStats) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveStats_SetLineColor" c_tpavestats_setlinecolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetFillColor" c_tpavestats_setfillcolor 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_SetFillStyle" c_tpavestats_setfillstyle 
+  :: (Ptr RawTPaveStats) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveStats_newTPaveStats" c_tpavestats_newtpavestats 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> IO (Ptr RawTPaveStats)
+
+
+foreign import ccall "HROOT.h TPavesText_SetTextColor" c_tpavestext_settextcolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetTextAlign" c_tpavestext_settextalign 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetTextSize" c_tpavestext_settextsize 
+  :: (Ptr RawTPavesText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPavesText_GetName" c_tpavestext_getname 
+  :: (Ptr RawTPavesText) -> IO CString
+foreign import ccall "HROOT.h TPavesText_Draw" c_tpavestext_draw 
+  :: (Ptr RawTPavesText) -> CString -> IO ()
+foreign import ccall "HROOT.h TPavesText_SaveAs" c_tpavestext_saveas 
+  :: (Ptr RawTPavesText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPavesText_Write" c_tpavestext_write 
+  :: (Ptr RawTPavesText) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPavesText_SetLineColor" c_tpavestext_setlinecolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetFillColor" c_tpavestext_setfillcolor 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_SetFillStyle" c_tpavestext_setfillstyle 
+  :: (Ptr RawTPavesText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPavesText_newTPavesText" c_tpavestext_newtpavestext 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CString -> IO (Ptr RawTPavesText)
+
+
+foreign import ccall "HROOT.h TLegend_SetTextColor" c_tlegend_settextcolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetTextAlign" c_tlegend_settextalign 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetTextSize" c_tlegend_settextsize 
+  :: (Ptr RawTLegend) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TLegend_GetName" c_tlegend_getname 
+  :: (Ptr RawTLegend) -> IO CString
+foreign import ccall "HROOT.h TLegend_Draw" c_tlegend_draw 
+  :: (Ptr RawTLegend) -> CString -> IO ()
+foreign import ccall "HROOT.h TLegend_SaveAs" c_tlegend_saveas 
+  :: (Ptr RawTLegend) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLegend_Write" c_tlegend_write 
+  :: (Ptr RawTLegend) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLegend_SetLineColor" c_tlegend_setlinecolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetFillColor" c_tlegend_setfillcolor 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_SetFillStyle" c_tlegend_setfillstyle 
+  :: (Ptr RawTLegend) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLegend_newTLegend" c_tlegend_newtlegend 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTLegend)
+
+
+foreign import ccall "HROOT.h TPaveLabel_SetTextColor" c_tpavelabel_settextcolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetTextAlign" c_tpavelabel_settextalign 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetTextSize" c_tpavelabel_settextsize 
+  :: (Ptr RawTPaveLabel) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_GetName" c_tpavelabel_getname 
+  :: (Ptr RawTPaveLabel) -> IO CString
+foreign import ccall "HROOT.h TPaveLabel_Draw" c_tpavelabel_draw 
+  :: (Ptr RawTPaveLabel) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SaveAs" c_tpavelabel_saveas 
+  :: (Ptr RawTPaveLabel) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_Write" c_tpavelabel_write 
+  :: (Ptr RawTPaveLabel) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveLabel_SetLineColor" c_tpavelabel_setlinecolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetFillColor" c_tpavelabel_setfillcolor 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_SetFillStyle" c_tpavelabel_setfillstyle 
+  :: (Ptr RawTPaveLabel) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveLabel_newTPaveLabel" c_tpavelabel_newtpavelabel 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CString -> CString -> IO (Ptr RawTPaveLabel)
+
+
+foreign import ccall "HROOT.h TPaveClass_SetTextColor" c_tpaveclass_settextcolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetTextAlign" c_tpaveclass_settextalign 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetTextSize" c_tpaveclass_settextsize 
+  :: (Ptr RawTPaveClass) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPaveClass_GetName" c_tpaveclass_getname 
+  :: (Ptr RawTPaveClass) -> IO CString
+foreign import ccall "HROOT.h TPaveClass_Draw" c_tpaveclass_draw 
+  :: (Ptr RawTPaveClass) -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SaveAs" c_tpaveclass_saveas 
+  :: (Ptr RawTPaveClass) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPaveClass_Write" c_tpaveclass_write 
+  :: (Ptr RawTPaveClass) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPaveClass_SetLineColor" c_tpaveclass_setlinecolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetFillColor" c_tpaveclass_setfillcolor 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPaveClass_SetFillStyle" c_tpaveclass_setfillstyle 
+  :: (Ptr RawTPaveClass) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TWbox_GetName" c_twbox_getname 
+  :: (Ptr RawTWbox) -> IO CString
+foreign import ccall "HROOT.h TWbox_Draw" c_twbox_draw 
+  :: (Ptr RawTWbox) -> CString -> IO ()
+foreign import ccall "HROOT.h TWbox_SaveAs" c_twbox_saveas 
+  :: (Ptr RawTWbox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TWbox_Write" c_twbox_write 
+  :: (Ptr RawTWbox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TWbox_SetLineColor" c_twbox_setlinecolor 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_SetFillColor" c_twbox_setfillcolor 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_SetFillStyle" c_twbox_setfillstyle 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TWbox_newTWbox" c_twbox_newtwbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTWbox)
+foreign import ccall "HROOT.h TWbox_SetBorderMode" c_twbox_setbordermode 
+  :: (Ptr RawTWbox) -> CInt -> IO ()
+
+
+foreign import ccall "HROOT.h TFrame_SetBorderMode" c_tframe_setbordermode 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_GetName" c_tframe_getname 
+  :: (Ptr RawTFrame) -> IO CString
+foreign import ccall "HROOT.h TFrame_Draw" c_tframe_draw 
+  :: (Ptr RawTFrame) -> CString -> IO ()
+foreign import ccall "HROOT.h TFrame_SaveAs" c_tframe_saveas 
+  :: (Ptr RawTFrame) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TFrame_Write" c_tframe_write 
+  :: (Ptr RawTFrame) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TFrame_SetLineColor" c_tframe_setlinecolor 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_SetFillColor" c_tframe_setfillcolor 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_SetFillStyle" c_tframe_setfillstyle 
+  :: (Ptr RawTFrame) -> CInt -> IO ()
+foreign import ccall "HROOT.h TFrame_newTFrame" c_tframe_newtframe 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTFrame)
+
+
+foreign import ccall "HROOT.h TSliderBox_SetBorderMode" c_tsliderbox_setbordermode 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_GetName" c_tsliderbox_getname 
+  :: (Ptr RawTSliderBox) -> IO CString
+foreign import ccall "HROOT.h TSliderBox_Draw" c_tsliderbox_draw 
+  :: (Ptr RawTSliderBox) -> CString -> IO ()
+foreign import ccall "HROOT.h TSliderBox_SaveAs" c_tsliderbox_saveas 
+  :: (Ptr RawTSliderBox) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSliderBox_Write" c_tsliderbox_write 
+  :: (Ptr RawTSliderBox) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSliderBox_SetLineColor" c_tsliderbox_setlinecolor 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_SetFillColor" c_tsliderbox_setfillcolor 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_SetFillStyle" c_tsliderbox_setfillstyle 
+  :: (Ptr RawTSliderBox) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSliderBox_newTSliderBox" c_tsliderbox_newtsliderbox 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CInt -> CInt -> CInt -> IO (Ptr RawTSliderBox)
+
+
+foreign import ccall "HROOT.h TTree_SetTitle" c_ttree_settitle 
+  :: (Ptr RawTTree) -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_SetLineColor" c_ttree_setlinecolor 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_SetFillColor" c_ttree_setfillcolor 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_SetFillStyle" c_ttree_setfillstyle 
+  :: (Ptr RawTTree) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTree_GetName" c_ttree_getname 
+  :: (Ptr RawTTree) -> IO CString
+foreign import ccall "HROOT.h TTree_Draw" c_ttree_draw 
+  :: (Ptr RawTTree) -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_SaveAs" c_ttree_saveas 
+  :: (Ptr RawTTree) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTree_Write" c_ttree_write 
+  :: (Ptr RawTTree) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TTree_newTTree" c_ttree_newttree 
+  :: CString -> CString -> CInt -> IO (Ptr RawTTree)
+
+
+foreign import ccall "HROOT.h TChain_SetTitle" c_tchain_settitle 
+  :: (Ptr RawTChain) -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_SetLineColor" c_tchain_setlinecolor 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_SetFillColor" c_tchain_setfillcolor 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_SetFillStyle" c_tchain_setfillstyle 
+  :: (Ptr RawTChain) -> CInt -> IO ()
+foreign import ccall "HROOT.h TChain_GetName" c_tchain_getname 
+  :: (Ptr RawTChain) -> IO CString
+foreign import ccall "HROOT.h TChain_Draw" c_tchain_draw 
+  :: (Ptr RawTChain) -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_SaveAs" c_tchain_saveas 
+  :: (Ptr RawTChain) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TChain_Write" c_tchain_write 
+  :: (Ptr RawTChain) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TChain_newTChain" c_tchain_newtchain 
+  :: CString -> CString -> IO (Ptr RawTChain)
+
+
+foreign import ccall "HROOT.h TNtuple_SetTitle" c_tntuple_settitle 
+  :: (Ptr RawTNtuple) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetLineColor" c_tntuple_setlinecolor 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetFillColor" c_tntuple_setfillcolor 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_SetFillStyle" c_tntuple_setfillstyle 
+  :: (Ptr RawTNtuple) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtuple_GetName" c_tntuple_getname 
+  :: (Ptr RawTNtuple) -> IO CString
+foreign import ccall "HROOT.h TNtuple_Draw" c_tntuple_draw 
+  :: (Ptr RawTNtuple) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_SaveAs" c_tntuple_saveas 
+  :: (Ptr RawTNtuple) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNtuple_Write" c_tntuple_write 
+  :: (Ptr RawTNtuple) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNtuple_newTNtuple" c_tntuple_newtntuple 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtuple)
+
+
+foreign import ccall "HROOT.h TNtupleD_SetTitle" c_tntupled_settitle 
+  :: (Ptr RawTNtupleD) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetLineColor" c_tntupled_setlinecolor 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetFillColor" c_tntupled_setfillcolor 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SetFillStyle" c_tntupled_setfillstyle 
+  :: (Ptr RawTNtupleD) -> CInt -> IO ()
+foreign import ccall "HROOT.h TNtupleD_GetName" c_tntupled_getname 
+  :: (Ptr RawTNtupleD) -> IO CString
+foreign import ccall "HROOT.h TNtupleD_Draw" c_tntupled_draw 
+  :: (Ptr RawTNtupleD) -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_SaveAs" c_tntupled_saveas 
+  :: (Ptr RawTNtupleD) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TNtupleD_Write" c_tntupled_write 
+  :: (Ptr RawTNtupleD) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TNtupleD_newTNtupleD" c_tntupled_newtntupled 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTNtupleD)
+
+
+foreign import ccall "HROOT.h TTreeSQL_SetTitle" c_ttreesql_settitle 
+  :: (Ptr RawTTreeSQL) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetLineColor" c_ttreesql_setlinecolor 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetFillColor" c_ttreesql_setfillcolor 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SetFillStyle" c_ttreesql_setfillstyle 
+  :: (Ptr RawTTreeSQL) -> CInt -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_GetName" c_ttreesql_getname 
+  :: (Ptr RawTTreeSQL) -> IO CString
+foreign import ccall "HROOT.h TTreeSQL_Draw" c_ttreesql_draw 
+  :: (Ptr RawTTreeSQL) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_SaveAs" c_ttreesql_saveas 
+  :: (Ptr RawTTreeSQL) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTreeSQL_Write" c_ttreesql_write 
+  :: (Ptr RawTTreeSQL) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TPolyLine_GetName" c_tpolyline_getname 
+  :: (Ptr RawTPolyLine) -> IO CString
+foreign import ccall "HROOT.h TPolyLine_Draw" c_tpolyline_draw 
+  :: (Ptr RawTPolyLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLine_SaveAs" c_tpolyline_saveas 
+  :: (Ptr RawTPolyLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPolyLine_Write" c_tpolyline_write 
+  :: (Ptr RawTPolyLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPolyLine_SetLineColor" c_tpolyline_setlinecolor 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_SetFillColor" c_tpolyline_setfillcolor 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_SetFillStyle" c_tpolyline_setfillstyle 
+  :: (Ptr RawTPolyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPolyLine_newTPolyLine" c_tpolyline_newtpolyline 
+  :: CInt -> (Ptr CDouble) -> (Ptr CDouble) -> CString -> IO (Ptr RawTPolyLine)
+
+
+foreign import ccall "HROOT.h TCurlyLine_GetName" c_tcurlyline_getname 
+  :: (Ptr RawTCurlyLine) -> IO CString
+foreign import ccall "HROOT.h TCurlyLine_Draw" c_tcurlyline_draw 
+  :: (Ptr RawTCurlyLine) -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_SaveAs" c_tcurlyline_saveas 
+  :: (Ptr RawTCurlyLine) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_Write" c_tcurlyline_write 
+  :: (Ptr RawTCurlyLine) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCurlyLine_SetLineColor" c_tcurlyline_setlinecolor 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_SetFillColor" c_tcurlyline_setfillcolor 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_SetFillStyle" c_tcurlyline_setfillstyle 
+  :: (Ptr RawTCurlyLine) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyLine_newTCurlyLine" c_tcurlyline_newtcurlyline 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyLine)
+
+
+foreign import ccall "HROOT.h TCurlyArc_GetName" c_tcurlyarc_getname 
+  :: (Ptr RawTCurlyArc) -> IO CString
+foreign import ccall "HROOT.h TCurlyArc_Draw" c_tcurlyarc_draw 
+  :: (Ptr RawTCurlyArc) -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_SaveAs" c_tcurlyarc_saveas 
+  :: (Ptr RawTCurlyArc) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_Write" c_tcurlyarc_write 
+  :: (Ptr RawTCurlyArc) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCurlyArc_SetLineColor" c_tcurlyarc_setlinecolor 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_SetFillColor" c_tcurlyarc_setfillcolor 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_SetFillStyle" c_tcurlyarc_setfillstyle 
+  :: (Ptr RawTCurlyArc) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCurlyArc_newTCurlyArc" c_tcurlyarc_newtcurlyarc 
+  :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr RawTCurlyArc)
+
+
+foreign import ccall "HROOT.h TEfficiency_SetTitle" c_tefficiency_settitle 
+  :: (Ptr RawTEfficiency) -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetLineColor" c_tefficiency_setlinecolor 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetFillColor" c_tefficiency_setfillcolor 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SetFillStyle" c_tefficiency_setfillstyle 
+  :: (Ptr RawTEfficiency) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEfficiency_GetName" c_tefficiency_getname 
+  :: (Ptr RawTEfficiency) -> IO CString
+foreign import ccall "HROOT.h TEfficiency_Draw" c_tefficiency_draw 
+  :: (Ptr RawTEfficiency) -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_SaveAs" c_tefficiency_saveas 
+  :: (Ptr RawTEfficiency) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEfficiency_Write" c_tefficiency_write 
+  :: (Ptr RawTEfficiency) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TAxis_SetTitle" c_taxis_settitle 
+  :: (Ptr RawTAxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_SetLabelColor" c_taxis_setlabelcolor 
+  :: (Ptr RawTAxis) -> CInt -> IO ()
+foreign import ccall "HROOT.h TAxis_SetLabelSize" c_taxis_setlabelsize 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetTickLength" c_taxis_setticklength 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetTitleOffset" c_taxis_settitleoffset 
+  :: (Ptr RawTAxis) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TAxis_SetNdivisions" c_taxis_setndivisions 
+  :: (Ptr RawTAxis) -> CInt -> CInt -> IO ()
+foreign import ccall "HROOT.h TAxis_GetName" c_taxis_getname 
+  :: (Ptr RawTAxis) -> IO CString
+foreign import ccall "HROOT.h TAxis_Draw" c_taxis_draw 
+  :: (Ptr RawTAxis) -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_SaveAs" c_taxis_saveas 
+  :: (Ptr RawTAxis) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TAxis_Write" c_taxis_write 
+  :: (Ptr RawTAxis) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TLatex_SetLineColor" c_tlatex_setlinecolor 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTitle" c_tlatex_settitle 
+  :: (Ptr RawTLatex) -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextColor" c_tlatex_settextcolor 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextAlign" c_tlatex_settextalign 
+  :: (Ptr RawTLatex) -> CInt -> IO ()
+foreign import ccall "HROOT.h TLatex_SetTextSize" c_tlatex_settextsize 
+  :: (Ptr RawTLatex) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TLatex_GetName" c_tlatex_getname 
+  :: (Ptr RawTLatex) -> IO CString
+foreign import ccall "HROOT.h TLatex_Draw" c_tlatex_draw 
+  :: (Ptr RawTLatex) -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_SaveAs" c_tlatex_saveas 
+  :: (Ptr RawTLatex) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TLatex_Write" c_tlatex_write 
+  :: (Ptr RawTLatex) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TLatex_newTLatex" c_tlatex_newtlatex 
+  :: CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
+foreign import ccall "HROOT.h TLatex_tLatexDrawLatex" c_tlatex_tlatexdrawlatex 
+  :: (Ptr RawTLatex) -> CDouble -> CDouble -> CString -> IO (Ptr RawTLatex)
+
+
+foreign import ccall "HROOT.h TText_SetTitle" c_ttext_settitle 
+  :: (Ptr RawTText) -> CString -> IO ()
+foreign import ccall "HROOT.h TText_SetTextColor" c_ttext_settextcolor 
+  :: (Ptr RawTText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TText_SetTextAlign" c_ttext_settextalign 
+  :: (Ptr RawTText) -> CInt -> IO ()
+foreign import ccall "HROOT.h TText_SetTextSize" c_ttext_settextsize 
+  :: (Ptr RawTText) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TText_GetName" c_ttext_getname 
+  :: (Ptr RawTText) -> IO CString
+foreign import ccall "HROOT.h TText_Draw" c_ttext_draw 
+  :: (Ptr RawTText) -> CString -> IO ()
+foreign import ccall "HROOT.h TText_SaveAs" c_ttext_saveas 
+  :: (Ptr RawTText) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TText_Write" c_ttext_write 
+  :: (Ptr RawTText) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TDirectory_SetTitle" c_tdirectory_settitle 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_GetName" c_tdirectory_getname 
+  :: (Ptr RawTDirectory) -> IO CString
+foreign import ccall "HROOT.h TDirectory_Draw" c_tdirectory_draw 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_SaveAs" c_tdirectory_saveas 
+  :: (Ptr RawTDirectory) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectory_Write" c_tdirectory_write 
+  :: (Ptr RawTDirectory) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDirectory_Close" c_tdirectory_close 
+  :: (Ptr RawTDirectory) -> CString -> IO ()
+
+foreign import ccall "HROOT.h TDirectoryFile_Close" c_tdirectoryfile_close 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_SetTitle" c_tdirectoryfile_settitle 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_GetName" c_tdirectoryfile_getname 
+  :: (Ptr RawTDirectoryFile) -> IO CString
+foreign import ccall "HROOT.h TDirectoryFile_Draw" c_tdirectoryfile_draw 
+  :: (Ptr RawTDirectoryFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_SaveAs" c_tdirectoryfile_saveas 
+  :: (Ptr RawTDirectoryFile) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDirectoryFile_Write" c_tdirectoryfile_write 
+  :: (Ptr RawTDirectoryFile) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TFile_Close" c_tfile_close 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_SetTitle" c_tfile_settitle 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_GetName" c_tfile_getname 
+  :: (Ptr RawTFile) -> IO CString
+foreign import ccall "HROOT.h TFile_Draw" c_tfile_draw 
+  :: (Ptr RawTFile) -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_SaveAs" c_tfile_saveas 
+  :: (Ptr RawTFile) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TFile_Write" c_tfile_write 
+  :: (Ptr RawTFile) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TFile_newTFile" c_tfile_newtfile 
+  :: CString -> CString -> CString -> CInt -> IO (Ptr RawTFile)
+
+
+foreign import ccall "HROOT.h TBranch_SetTitle" c_tbranch_settitle 
+  :: (Ptr RawTBranch) -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_SetFillColor" c_tbranch_setfillcolor 
+  :: (Ptr RawTBranch) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBranch_SetFillStyle" c_tbranch_setfillstyle 
+  :: (Ptr RawTBranch) -> CInt -> IO ()
+foreign import ccall "HROOT.h TBranch_GetName" c_tbranch_getname 
+  :: (Ptr RawTBranch) -> IO CString
+foreign import ccall "HROOT.h TBranch_Draw" c_tbranch_draw 
+  :: (Ptr RawTBranch) -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_SaveAs" c_tbranch_saveas 
+  :: (Ptr RawTBranch) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TBranch_Write" c_tbranch_write 
+  :: (Ptr RawTBranch) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TVirtualTreePlayer_GetName" c_tvirtualtreeplayer_getname 
+  :: (Ptr RawTVirtualTreePlayer) -> IO CString
+foreign import ccall "HROOT.h TVirtualTreePlayer_Draw" c_tvirtualtreeplayer_draw 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualTreePlayer_SaveAs" c_tvirtualtreeplayer_saveas 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualTreePlayer_Write" c_tvirtualtreeplayer_write 
+  :: (Ptr RawTVirtualTreePlayer) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TTreePlayer_GetName" c_ttreeplayer_getname 
+  :: (Ptr RawTTreePlayer) -> IO CString
+foreign import ccall "HROOT.h TTreePlayer_Draw" c_ttreeplayer_draw 
+  :: (Ptr RawTTreePlayer) -> CString -> IO ()
+foreign import ccall "HROOT.h TTreePlayer_SaveAs" c_ttreeplayer_saveas 
+  :: (Ptr RawTTreePlayer) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TTreePlayer_Write" c_ttreeplayer_write 
+  :: (Ptr RawTTreePlayer) -> CString -> CInt -> CInt -> IO CInt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+foreign import ccall "HROOT.h TH1_SetTitle" c_th1_settitle 
+  :: (Ptr RawTH1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_SetLineColor" c_th1_setlinecolor 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_SetFillColor" c_th1_setfillcolor 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_SetFillStyle" c_th1_setfillstyle 
+  :: (Ptr RawTH1) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1_GetName" c_th1_getname 
+  :: (Ptr RawTH1) -> IO CString
+foreign import ccall "HROOT.h TH1_Draw" c_th1_draw 
+  :: (Ptr RawTH1) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_SaveAs" c_th1_saveas 
+  :: (Ptr RawTH1) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1_Write" c_th1_write 
+  :: (Ptr RawTH1) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1_GetXaxis" c_th1_getxaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1_GetYaxis" c_th1_getyaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1_GetZaxis" c_th1_getzaxis 
+  :: (Ptr RawTH1) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1_Add" c_th1_add 
+  :: (Ptr RawTH1) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1_fill1" c_th1_fill1 
+  :: (Ptr RawTH1) -> CDouble -> IO CInt
+
+
+foreign import ccall "HROOT.h TH2_GetXaxis" c_th2_getxaxis 
+  :: (Ptr RawTH2) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2_GetYaxis" c_th2_getyaxis 
+  :: (Ptr RawTH2) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2_GetZaxis" c_th2_getzaxis 
+  :: (Ptr RawTH2) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2_Add" c_th2_add 
+  :: (Ptr RawTH2) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2_fill1" c_th2_fill1 
+  :: (Ptr RawTH2) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2_SetTitle" c_th2_settitle 
+  :: (Ptr RawTH2) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_SetLineColor" c_th2_setlinecolor 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_SetFillColor" c_th2_setfillcolor 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_SetFillStyle" c_th2_setfillstyle 
+  :: (Ptr RawTH2) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2_GetName" c_th2_getname 
+  :: (Ptr RawTH2) -> IO CString
+foreign import ccall "HROOT.h TH2_Draw" c_th2_draw 
+  :: (Ptr RawTH2) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_SaveAs" c_th2_saveas 
+  :: (Ptr RawTH2) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2_Write" c_th2_write 
+  :: (Ptr RawTH2) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2_fill2" c_th2_fill2 
+  :: (Ptr RawTH2) -> CDouble -> CDouble -> IO CInt
+
+
+foreign import ccall "HROOT.h TH3_GetXaxis" c_th3_getxaxis 
+  :: (Ptr RawTH3) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3_GetYaxis" c_th3_getyaxis 
+  :: (Ptr RawTH3) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3_GetZaxis" c_th3_getzaxis 
+  :: (Ptr RawTH3) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3_Add" c_th3_add 
+  :: (Ptr RawTH3) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3_fill1" c_th3_fill1 
+  :: (Ptr RawTH3) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3_SetTitle" c_th3_settitle 
+  :: (Ptr RawTH3) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_SetLineColor" c_th3_setlinecolor 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_SetFillColor" c_th3_setfillcolor 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_SetFillStyle" c_th3_setfillstyle 
+  :: (Ptr RawTH3) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3_GetName" c_th3_getname 
+  :: (Ptr RawTH3) -> IO CString
+foreign import ccall "HROOT.h TH3_Draw" c_th3_draw 
+  :: (Ptr RawTH3) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_SaveAs" c_th3_saveas 
+  :: (Ptr RawTH3) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3_Write" c_th3_write 
+  :: (Ptr RawTH3) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH1C_GetXaxis" c_th1c_getxaxis 
+  :: (Ptr RawTH1C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1C_GetYaxis" c_th1c_getyaxis 
+  :: (Ptr RawTH1C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1C_GetZaxis" c_th1c_getzaxis 
+  :: (Ptr RawTH1C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1C_Add" c_th1c_add 
+  :: (Ptr RawTH1C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1C_fill1" c_th1c_fill1 
+  :: (Ptr RawTH1C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1C_SetTitle" c_th1c_settitle 
+  :: (Ptr RawTH1C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_SetLineColor" c_th1c_setlinecolor 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_SetFillColor" c_th1c_setfillcolor 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_SetFillStyle" c_th1c_setfillstyle 
+  :: (Ptr RawTH1C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1C_GetName" c_th1c_getname 
+  :: (Ptr RawTH1C) -> IO CString
+foreign import ccall "HROOT.h TH1C_Draw" c_th1c_draw 
+  :: (Ptr RawTH1C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_SaveAs" c_th1c_saveas 
+  :: (Ptr RawTH1C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1C_Write" c_th1c_write 
+  :: (Ptr RawTH1C) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH1D_GetXaxis" c_th1d_getxaxis 
+  :: (Ptr RawTH1D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1D_GetYaxis" c_th1d_getyaxis 
+  :: (Ptr RawTH1D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1D_GetZaxis" c_th1d_getzaxis 
+  :: (Ptr RawTH1D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1D_Add" c_th1d_add 
+  :: (Ptr RawTH1D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1D_fill1" c_th1d_fill1 
+  :: (Ptr RawTH1D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1D_SetTitle" c_th1d_settitle 
+  :: (Ptr RawTH1D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_SetLineColor" c_th1d_setlinecolor 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_SetFillColor" c_th1d_setfillcolor 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_SetFillStyle" c_th1d_setfillstyle 
+  :: (Ptr RawTH1D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1D_GetName" c_th1d_getname 
+  :: (Ptr RawTH1D) -> IO CString
+foreign import ccall "HROOT.h TH1D_Draw" c_th1d_draw 
+  :: (Ptr RawTH1D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_SaveAs" c_th1d_saveas 
+  :: (Ptr RawTH1D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1D_Write" c_th1d_write 
+  :: (Ptr RawTH1D) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH1F_GetXaxis" c_th1f_getxaxis 
+  :: (Ptr RawTH1F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1F_GetYaxis" c_th1f_getyaxis 
+  :: (Ptr RawTH1F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1F_GetZaxis" c_th1f_getzaxis 
+  :: (Ptr RawTH1F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1F_Add" c_th1f_add 
+  :: (Ptr RawTH1F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1F_fill1" c_th1f_fill1 
+  :: (Ptr RawTH1F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1F_SetTitle" c_th1f_settitle 
+  :: (Ptr RawTH1F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_SetLineColor" c_th1f_setlinecolor 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_SetFillColor" c_th1f_setfillcolor 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_SetFillStyle" c_th1f_setfillstyle 
+  :: (Ptr RawTH1F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1F_GetName" c_th1f_getname 
+  :: (Ptr RawTH1F) -> IO CString
+foreign import ccall "HROOT.h TH1F_Draw" c_th1f_draw 
+  :: (Ptr RawTH1F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_SaveAs" c_th1f_saveas 
+  :: (Ptr RawTH1F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1F_Write" c_th1f_write 
+  :: (Ptr RawTH1F) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH1F_newTH1F" c_th1f_newth1f 
+  :: CString -> CString -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH1F)
+
+
+foreign import ccall "HROOT.h TH1I_GetXaxis" c_th1i_getxaxis 
+  :: (Ptr RawTH1I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1I_GetYaxis" c_th1i_getyaxis 
+  :: (Ptr RawTH1I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1I_GetZaxis" c_th1i_getzaxis 
+  :: (Ptr RawTH1I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1I_Add" c_th1i_add 
+  :: (Ptr RawTH1I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1I_fill1" c_th1i_fill1 
+  :: (Ptr RawTH1I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1I_SetTitle" c_th1i_settitle 
+  :: (Ptr RawTH1I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_SetLineColor" c_th1i_setlinecolor 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_SetFillColor" c_th1i_setfillcolor 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_SetFillStyle" c_th1i_setfillstyle 
+  :: (Ptr RawTH1I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1I_GetName" c_th1i_getname 
+  :: (Ptr RawTH1I) -> IO CString
+foreign import ccall "HROOT.h TH1I_Draw" c_th1i_draw 
+  :: (Ptr RawTH1I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_SaveAs" c_th1i_saveas 
+  :: (Ptr RawTH1I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1I_Write" c_th1i_write 
+  :: (Ptr RawTH1I) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH1S_GetXaxis" c_th1s_getxaxis 
+  :: (Ptr RawTH1S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1S_GetYaxis" c_th1s_getyaxis 
+  :: (Ptr RawTH1S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1S_GetZaxis" c_th1s_getzaxis 
+  :: (Ptr RawTH1S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH1S_Add" c_th1s_add 
+  :: (Ptr RawTH1S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH1S_fill1" c_th1s_fill1 
+  :: (Ptr RawTH1S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH1S_SetTitle" c_th1s_settitle 
+  :: (Ptr RawTH1S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_SetLineColor" c_th1s_setlinecolor 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_SetFillColor" c_th1s_setfillcolor 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_SetFillStyle" c_th1s_setfillstyle 
+  :: (Ptr RawTH1S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH1S_GetName" c_th1s_getname 
+  :: (Ptr RawTH1S) -> IO CString
+foreign import ccall "HROOT.h TH1S_Draw" c_th1s_draw 
+  :: (Ptr RawTH1S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_SaveAs" c_th1s_saveas 
+  :: (Ptr RawTH1S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH1S_Write" c_th1s_write 
+  :: (Ptr RawTH1S) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH2C_fill2" c_th2c_fill2 
+  :: (Ptr RawTH2C) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_GetXaxis" c_th2c_getxaxis 
+  :: (Ptr RawTH2C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2C_GetYaxis" c_th2c_getyaxis 
+  :: (Ptr RawTH2C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2C_GetZaxis" c_th2c_getzaxis 
+  :: (Ptr RawTH2C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2C_Add" c_th2c_add 
+  :: (Ptr RawTH2C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2C_fill1" c_th2c_fill1 
+  :: (Ptr RawTH2C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2C_SetTitle" c_th2c_settitle 
+  :: (Ptr RawTH2C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_SetLineColor" c_th2c_setlinecolor 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_SetFillColor" c_th2c_setfillcolor 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_SetFillStyle" c_th2c_setfillstyle 
+  :: (Ptr RawTH2C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2C_GetName" c_th2c_getname 
+  :: (Ptr RawTH2C) -> IO CString
+foreign import ccall "HROOT.h TH2C_Draw" c_th2c_draw 
+  :: (Ptr RawTH2C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_SaveAs" c_th2c_saveas 
+  :: (Ptr RawTH2C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2C_Write" c_th2c_write 
+  :: (Ptr RawTH2C) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH2D_fill2" c_th2d_fill2 
+  :: (Ptr RawTH2D) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_GetXaxis" c_th2d_getxaxis 
+  :: (Ptr RawTH2D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2D_GetYaxis" c_th2d_getyaxis 
+  :: (Ptr RawTH2D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2D_GetZaxis" c_th2d_getzaxis 
+  :: (Ptr RawTH2D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2D_Add" c_th2d_add 
+  :: (Ptr RawTH2D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2D_fill1" c_th2d_fill1 
+  :: (Ptr RawTH2D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2D_SetTitle" c_th2d_settitle 
+  :: (Ptr RawTH2D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_SetLineColor" c_th2d_setlinecolor 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_SetFillColor" c_th2d_setfillcolor 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_SetFillStyle" c_th2d_setfillstyle 
+  :: (Ptr RawTH2D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2D_GetName" c_th2d_getname 
+  :: (Ptr RawTH2D) -> IO CString
+foreign import ccall "HROOT.h TH2D_Draw" c_th2d_draw 
+  :: (Ptr RawTH2D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_SaveAs" c_th2d_saveas 
+  :: (Ptr RawTH2D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2D_Write" c_th2d_write 
+  :: (Ptr RawTH2D) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH2F_fill2" c_th2f_fill2 
+  :: (Ptr RawTH2F) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_GetXaxis" c_th2f_getxaxis 
+  :: (Ptr RawTH2F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2F_GetYaxis" c_th2f_getyaxis 
+  :: (Ptr RawTH2F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2F_GetZaxis" c_th2f_getzaxis 
+  :: (Ptr RawTH2F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2F_Add" c_th2f_add 
+  :: (Ptr RawTH2F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2F_fill1" c_th2f_fill1 
+  :: (Ptr RawTH2F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2F_SetTitle" c_th2f_settitle 
+  :: (Ptr RawTH2F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_SetLineColor" c_th2f_setlinecolor 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_SetFillColor" c_th2f_setfillcolor 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_SetFillStyle" c_th2f_setfillstyle 
+  :: (Ptr RawTH2F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2F_GetName" c_th2f_getname 
+  :: (Ptr RawTH2F) -> IO CString
+foreign import ccall "HROOT.h TH2F_Draw" c_th2f_draw 
+  :: (Ptr RawTH2F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_SaveAs" c_th2f_saveas 
+  :: (Ptr RawTH2F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2F_Write" c_th2f_write 
+  :: (Ptr RawTH2F) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TH2F_newTH2F" c_th2f_newth2f 
+  :: CString -> CString -> CInt -> CDouble -> CDouble -> CInt -> CDouble -> CDouble -> IO (Ptr RawTH2F)
+
+
+foreign import ccall "HROOT.h TH2I_fill2" c_th2i_fill2 
+  :: (Ptr RawTH2I) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_GetXaxis" c_th2i_getxaxis 
+  :: (Ptr RawTH2I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2I_GetYaxis" c_th2i_getyaxis 
+  :: (Ptr RawTH2I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2I_GetZaxis" c_th2i_getzaxis 
+  :: (Ptr RawTH2I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2I_Add" c_th2i_add 
+  :: (Ptr RawTH2I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2I_fill1" c_th2i_fill1 
+  :: (Ptr RawTH2I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2I_SetTitle" c_th2i_settitle 
+  :: (Ptr RawTH2I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_SetLineColor" c_th2i_setlinecolor 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_SetFillColor" c_th2i_setfillcolor 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_SetFillStyle" c_th2i_setfillstyle 
+  :: (Ptr RawTH2I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2I_GetName" c_th2i_getname 
+  :: (Ptr RawTH2I) -> IO CString
+foreign import ccall "HROOT.h TH2I_Draw" c_th2i_draw 
+  :: (Ptr RawTH2I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_SaveAs" c_th2i_saveas 
+  :: (Ptr RawTH2I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2I_Write" c_th2i_write 
+  :: (Ptr RawTH2I) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH2Poly_fill2" c_th2poly_fill2 
+  :: (Ptr RawTH2Poly) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_GetXaxis" c_th2poly_getxaxis 
+  :: (Ptr RawTH2Poly) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2Poly_GetYaxis" c_th2poly_getyaxis 
+  :: (Ptr RawTH2Poly) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2Poly_GetZaxis" c_th2poly_getzaxis 
+  :: (Ptr RawTH2Poly) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2Poly_Add" c_th2poly_add 
+  :: (Ptr RawTH2Poly) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2Poly_fill1" c_th2poly_fill1 
+  :: (Ptr RawTH2Poly) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2Poly_SetTitle" c_th2poly_settitle 
+  :: (Ptr RawTH2Poly) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetLineColor" c_th2poly_setlinecolor 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetFillColor" c_th2poly_setfillcolor 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SetFillStyle" c_th2poly_setfillstyle 
+  :: (Ptr RawTH2Poly) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2Poly_GetName" c_th2poly_getname 
+  :: (Ptr RawTH2Poly) -> IO CString
+foreign import ccall "HROOT.h TH2Poly_Draw" c_th2poly_draw 
+  :: (Ptr RawTH2Poly) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_SaveAs" c_th2poly_saveas 
+  :: (Ptr RawTH2Poly) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2Poly_Write" c_th2poly_write 
+  :: (Ptr RawTH2Poly) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH2S_fill2" c_th2s_fill2 
+  :: (Ptr RawTH2S) -> CDouble -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_GetXaxis" c_th2s_getxaxis 
+  :: (Ptr RawTH2S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2S_GetYaxis" c_th2s_getyaxis 
+  :: (Ptr RawTH2S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2S_GetZaxis" c_th2s_getzaxis 
+  :: (Ptr RawTH2S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH2S_Add" c_th2s_add 
+  :: (Ptr RawTH2S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH2S_fill1" c_th2s_fill1 
+  :: (Ptr RawTH2S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH2S_SetTitle" c_th2s_settitle 
+  :: (Ptr RawTH2S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_SetLineColor" c_th2s_setlinecolor 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_SetFillColor" c_th2s_setfillcolor 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_SetFillStyle" c_th2s_setfillstyle 
+  :: (Ptr RawTH2S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH2S_GetName" c_th2s_getname 
+  :: (Ptr RawTH2S) -> IO CString
+foreign import ccall "HROOT.h TH2S_Draw" c_th2s_draw 
+  :: (Ptr RawTH2S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_SaveAs" c_th2s_saveas 
+  :: (Ptr RawTH2S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH2S_Write" c_th2s_write 
+  :: (Ptr RawTH2S) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH3C_GetXaxis" c_th3c_getxaxis 
+  :: (Ptr RawTH3C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3C_GetYaxis" c_th3c_getyaxis 
+  :: (Ptr RawTH3C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3C_GetZaxis" c_th3c_getzaxis 
+  :: (Ptr RawTH3C) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3C_Add" c_th3c_add 
+  :: (Ptr RawTH3C) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3C_fill1" c_th3c_fill1 
+  :: (Ptr RawTH3C) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3C_SetTitle" c_th3c_settitle 
+  :: (Ptr RawTH3C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_SetLineColor" c_th3c_setlinecolor 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_SetFillColor" c_th3c_setfillcolor 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_SetFillStyle" c_th3c_setfillstyle 
+  :: (Ptr RawTH3C) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3C_GetName" c_th3c_getname 
+  :: (Ptr RawTH3C) -> IO CString
+foreign import ccall "HROOT.h TH3C_Draw" c_th3c_draw 
+  :: (Ptr RawTH3C) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_SaveAs" c_th3c_saveas 
+  :: (Ptr RawTH3C) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3C_Write" c_th3c_write 
+  :: (Ptr RawTH3C) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH3D_GetXaxis" c_th3d_getxaxis 
+  :: (Ptr RawTH3D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3D_GetYaxis" c_th3d_getyaxis 
+  :: (Ptr RawTH3D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3D_GetZaxis" c_th3d_getzaxis 
+  :: (Ptr RawTH3D) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3D_Add" c_th3d_add 
+  :: (Ptr RawTH3D) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3D_fill1" c_th3d_fill1 
+  :: (Ptr RawTH3D) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3D_SetTitle" c_th3d_settitle 
+  :: (Ptr RawTH3D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_SetLineColor" c_th3d_setlinecolor 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_SetFillColor" c_th3d_setfillcolor 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_SetFillStyle" c_th3d_setfillstyle 
+  :: (Ptr RawTH3D) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3D_GetName" c_th3d_getname 
+  :: (Ptr RawTH3D) -> IO CString
+foreign import ccall "HROOT.h TH3D_Draw" c_th3d_draw 
+  :: (Ptr RawTH3D) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_SaveAs" c_th3d_saveas 
+  :: (Ptr RawTH3D) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3D_Write" c_th3d_write 
+  :: (Ptr RawTH3D) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH3F_GetXaxis" c_th3f_getxaxis 
+  :: (Ptr RawTH3F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3F_GetYaxis" c_th3f_getyaxis 
+  :: (Ptr RawTH3F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3F_GetZaxis" c_th3f_getzaxis 
+  :: (Ptr RawTH3F) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3F_Add" c_th3f_add 
+  :: (Ptr RawTH3F) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3F_fill1" c_th3f_fill1 
+  :: (Ptr RawTH3F) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3F_SetTitle" c_th3f_settitle 
+  :: (Ptr RawTH3F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_SetLineColor" c_th3f_setlinecolor 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_SetFillColor" c_th3f_setfillcolor 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_SetFillStyle" c_th3f_setfillstyle 
+  :: (Ptr RawTH3F) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3F_GetName" c_th3f_getname 
+  :: (Ptr RawTH3F) -> IO CString
+foreign import ccall "HROOT.h TH3F_Draw" c_th3f_draw 
+  :: (Ptr RawTH3F) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_SaveAs" c_th3f_saveas 
+  :: (Ptr RawTH3F) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3F_Write" c_th3f_write 
+  :: (Ptr RawTH3F) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH3I_GetXaxis" c_th3i_getxaxis 
+  :: (Ptr RawTH3I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3I_GetYaxis" c_th3i_getyaxis 
+  :: (Ptr RawTH3I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3I_GetZaxis" c_th3i_getzaxis 
+  :: (Ptr RawTH3I) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3I_Add" c_th3i_add 
+  :: (Ptr RawTH3I) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3I_fill1" c_th3i_fill1 
+  :: (Ptr RawTH3I) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3I_SetTitle" c_th3i_settitle 
+  :: (Ptr RawTH3I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_SetLineColor" c_th3i_setlinecolor 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_SetFillColor" c_th3i_setfillcolor 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_SetFillStyle" c_th3i_setfillstyle 
+  :: (Ptr RawTH3I) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3I_GetName" c_th3i_getname 
+  :: (Ptr RawTH3I) -> IO CString
+foreign import ccall "HROOT.h TH3I_Draw" c_th3i_draw 
+  :: (Ptr RawTH3I) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_SaveAs" c_th3i_saveas 
+  :: (Ptr RawTH3I) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3I_Write" c_th3i_write 
+  :: (Ptr RawTH3I) -> CString -> CInt -> CInt -> IO CInt
+
+foreign import ccall "HROOT.h TH3S_GetXaxis" c_th3s_getxaxis 
+  :: (Ptr RawTH3S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3S_GetYaxis" c_th3s_getyaxis 
+  :: (Ptr RawTH3S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3S_GetZaxis" c_th3s_getzaxis 
+  :: (Ptr RawTH3S) -> IO (Ptr RawTAxis)
+foreign import ccall "HROOT.h TH3S_Add" c_th3s_add 
+  :: (Ptr RawTH3S) -> (Ptr RawTH1) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TH3S_fill1" c_th3s_fill1 
+  :: (Ptr RawTH3S) -> CDouble -> IO CInt
+foreign import ccall "HROOT.h TH3S_SetTitle" c_th3s_settitle 
+  :: (Ptr RawTH3S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_SetLineColor" c_th3s_setlinecolor 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_SetFillColor" c_th3s_setfillcolor 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_SetFillStyle" c_th3s_setfillstyle 
+  :: (Ptr RawTH3S) -> CInt -> IO ()
+foreign import ccall "HROOT.h TH3S_GetName" c_th3s_getname 
+  :: (Ptr RawTH3S) -> IO CString
+foreign import ccall "HROOT.h TH3S_Draw" c_th3s_draw 
+  :: (Ptr RawTH3S) -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_SaveAs" c_th3s_saveas 
+  :: (Ptr RawTH3S) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TH3S_Write" c_th3s_write 
+  :: (Ptr RawTH3S) -> CString -> CInt -> CInt -> IO CInt
+
+
+
+foreign import ccall "HROOT.h TVirtualPad_GetName" c_tvirtualpad_getname 
+  :: (Ptr RawTVirtualPad) -> IO CString
+foreign import ccall "HROOT.h TVirtualPad_Draw" c_tvirtualpad_draw 
+  :: (Ptr RawTVirtualPad) -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_SaveAs" c_tvirtualpad_saveas 
+  :: (Ptr RawTVirtualPad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_Write" c_tvirtualpad_write 
+  :: (Ptr RawTVirtualPad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TVirtualPad_SetLineColor" c_tvirtualpad_setlinecolor 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_SetFillColor" c_tvirtualpad_setfillcolor 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_SetFillStyle" c_tvirtualpad_setfillstyle 
+  :: (Ptr RawTVirtualPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TVirtualPad_GetFrame" c_tvirtualpad_getframe 
+  :: (Ptr RawTVirtualPad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TVirtualPad_Range" c_tvirtualpad_range 
+  :: (Ptr RawTVirtualPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+
+foreign import ccall "HROOT.h TPad_GetFrame" c_tpad_getframe 
+  :: (Ptr RawTPad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TPad_Range" c_tpad_range 
+  :: (Ptr RawTPad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TPad_GetName" c_tpad_getname 
+  :: (Ptr RawTPad) -> IO CString
+foreign import ccall "HROOT.h TPad_Draw" c_tpad_draw 
+  :: (Ptr RawTPad) -> CString -> IO ()
+foreign import ccall "HROOT.h TPad_SaveAs" c_tpad_saveas 
+  :: (Ptr RawTPad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TPad_Write" c_tpad_write 
+  :: (Ptr RawTPad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TPad_SetLineColor" c_tpad_setlinecolor 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPad_SetFillColor" c_tpad_setfillcolor 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TPad_SetFillStyle" c_tpad_setfillstyle 
+  :: (Ptr RawTPad) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TButton_SetTextColor" c_tbutton_settextcolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetTextAlign" c_tbutton_settextalign 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetTextSize" c_tbutton_settextsize 
+  :: (Ptr RawTButton) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TButton_GetFrame" c_tbutton_getframe 
+  :: (Ptr RawTButton) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TButton_Range" c_tbutton_range 
+  :: (Ptr RawTButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TButton_GetName" c_tbutton_getname 
+  :: (Ptr RawTButton) -> IO CString
+foreign import ccall "HROOT.h TButton_Draw" c_tbutton_draw 
+  :: (Ptr RawTButton) -> CString -> IO ()
+foreign import ccall "HROOT.h TButton_SaveAs" c_tbutton_saveas 
+  :: (Ptr RawTButton) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TButton_Write" c_tbutton_write 
+  :: (Ptr RawTButton) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TButton_SetLineColor" c_tbutton_setlinecolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetFillColor" c_tbutton_setfillcolor 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TButton_SetFillStyle" c_tbutton_setfillstyle 
+  :: (Ptr RawTButton) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TGroupButton_SetTextColor" c_tgroupbutton_settextcolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetTextAlign" c_tgroupbutton_settextalign 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetTextSize" c_tgroupbutton_settextsize 
+  :: (Ptr RawTGroupButton) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGroupButton_GetFrame" c_tgroupbutton_getframe 
+  :: (Ptr RawTGroupButton) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TGroupButton_Range" c_tgroupbutton_range 
+  :: (Ptr RawTGroupButton) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TGroupButton_GetName" c_tgroupbutton_getname 
+  :: (Ptr RawTGroupButton) -> IO CString
+foreign import ccall "HROOT.h TGroupButton_Draw" c_tgroupbutton_draw 
+  :: (Ptr RawTGroupButton) -> CString -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SaveAs" c_tgroupbutton_saveas 
+  :: (Ptr RawTGroupButton) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TGroupButton_Write" c_tgroupbutton_write 
+  :: (Ptr RawTGroupButton) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TGroupButton_SetLineColor" c_tgroupbutton_setlinecolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetFillColor" c_tgroupbutton_setfillcolor 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+foreign import ccall "HROOT.h TGroupButton_SetFillStyle" c_tgroupbutton_setfillstyle 
+  :: (Ptr RawTGroupButton) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TCanvas_GetFrame" c_tcanvas_getframe 
+  :: (Ptr RawTCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TCanvas_Range" c_tcanvas_range 
+  :: (Ptr RawTCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TCanvas_GetName" c_tcanvas_getname 
+  :: (Ptr RawTCanvas) -> IO CString
+foreign import ccall "HROOT.h TCanvas_Draw" c_tcanvas_draw 
+  :: (Ptr RawTCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TCanvas_SaveAs" c_tcanvas_saveas 
+  :: (Ptr RawTCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TCanvas_Write" c_tcanvas_write 
+  :: (Ptr RawTCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TCanvas_SetLineColor" c_tcanvas_setlinecolor 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_SetFillColor" c_tcanvas_setfillcolor 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_SetFillStyle" c_tcanvas_setfillstyle 
+  :: (Ptr RawTCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TCanvas_newTCanvas" c_tcanvas_newtcanvas 
+  :: CString -> CString -> CInt -> CInt -> IO (Ptr RawTCanvas)
+
+
+foreign import ccall "HROOT.h TDialogCanvas_SetTextColor" c_tdialogcanvas_settextcolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetTextAlign" c_tdialogcanvas_settextalign 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetTextSize" c_tdialogcanvas_settextsize 
+  :: (Ptr RawTDialogCanvas) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_GetFrame" c_tdialogcanvas_getframe 
+  :: (Ptr RawTDialogCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TDialogCanvas_Range" c_tdialogcanvas_range 
+  :: (Ptr RawTDialogCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_GetName" c_tdialogcanvas_getname 
+  :: (Ptr RawTDialogCanvas) -> IO CString
+foreign import ccall "HROOT.h TDialogCanvas_Draw" c_tdialogcanvas_draw 
+  :: (Ptr RawTDialogCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SaveAs" c_tdialogcanvas_saveas 
+  :: (Ptr RawTDialogCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_Write" c_tdialogcanvas_write 
+  :: (Ptr RawTDialogCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TDialogCanvas_SetLineColor" c_tdialogcanvas_setlinecolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetFillColor" c_tdialogcanvas_setfillcolor 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TDialogCanvas_SetFillStyle" c_tdialogcanvas_setfillstyle 
+  :: (Ptr RawTDialogCanvas) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TInspectCanvas_SetTextColor" c_tinspectcanvas_settextcolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetTextAlign" c_tinspectcanvas_settextalign 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetTextSize" c_tinspectcanvas_settextsize 
+  :: (Ptr RawTInspectCanvas) -> CDouble -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_GetFrame" c_tinspectcanvas_getframe 
+  :: (Ptr RawTInspectCanvas) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TInspectCanvas_Range" c_tinspectcanvas_range 
+  :: (Ptr RawTInspectCanvas) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_GetName" c_tinspectcanvas_getname 
+  :: (Ptr RawTInspectCanvas) -> IO CString
+foreign import ccall "HROOT.h TInspectCanvas_Draw" c_tinspectcanvas_draw 
+  :: (Ptr RawTInspectCanvas) -> CString -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SaveAs" c_tinspectcanvas_saveas 
+  :: (Ptr RawTInspectCanvas) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_Write" c_tinspectcanvas_write 
+  :: (Ptr RawTInspectCanvas) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TInspectCanvas_SetLineColor" c_tinspectcanvas_setlinecolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetFillColor" c_tinspectcanvas_setfillcolor 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+foreign import ccall "HROOT.h TInspectCanvas_SetFillStyle" c_tinspectcanvas_setfillstyle 
+  :: (Ptr RawTInspectCanvas) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TEvePad_GetFrame" c_tevepad_getframe 
+  :: (Ptr RawTEvePad) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TEvePad_Range" c_tevepad_range 
+  :: (Ptr RawTEvePad) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TEvePad_GetName" c_tevepad_getname 
+  :: (Ptr RawTEvePad) -> IO CString
+foreign import ccall "HROOT.h TEvePad_Draw" c_tevepad_draw 
+  :: (Ptr RawTEvePad) -> CString -> IO ()
+foreign import ccall "HROOT.h TEvePad_SaveAs" c_tevepad_saveas 
+  :: (Ptr RawTEvePad) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TEvePad_Write" c_tevepad_write 
+  :: (Ptr RawTEvePad) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TEvePad_SetLineColor" c_tevepad_setlinecolor 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEvePad_SetFillColor" c_tevepad_setfillcolor 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+foreign import ccall "HROOT.h TEvePad_SetFillStyle" c_tevepad_setfillstyle 
+  :: (Ptr RawTEvePad) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TSlider_GetFrame" c_tslider_getframe 
+  :: (Ptr RawTSlider) -> IO (Ptr RawTFrame)
+foreign import ccall "HROOT.h TSlider_Range" c_tslider_range 
+  :: (Ptr RawTSlider) -> CDouble -> CDouble -> CDouble -> CDouble -> IO ()
+foreign import ccall "HROOT.h TSlider_GetName" c_tslider_getname 
+  :: (Ptr RawTSlider) -> IO CString
+foreign import ccall "HROOT.h TSlider_Draw" c_tslider_draw 
+  :: (Ptr RawTSlider) -> CString -> IO ()
+foreign import ccall "HROOT.h TSlider_SaveAs" c_tslider_saveas 
+  :: (Ptr RawTSlider) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TSlider_Write" c_tslider_write 
+  :: (Ptr RawTSlider) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TSlider_SetLineColor" c_tslider_setlinecolor 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSlider_SetFillColor" c_tslider_setfillcolor 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+foreign import ccall "HROOT.h TSlider_SetFillStyle" c_tslider_setfillstyle 
+  :: (Ptr RawTSlider) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TApplication_GetName" c_tapplication_getname 
+  :: (Ptr RawTApplication) -> IO CString
+foreign import ccall "HROOT.h TApplication_Draw" c_tapplication_draw 
+  :: (Ptr RawTApplication) -> CString -> IO ()
+foreign import ccall "HROOT.h TApplication_SaveAs" c_tapplication_saveas 
+  :: (Ptr RawTApplication) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TApplication_Write" c_tapplication_write 
+  :: (Ptr RawTApplication) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TApplication_newTApplication" c_tapplication_newtapplication 
+  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTApplication)
+foreign import ccall "HROOT.h TApplication_Run" c_tapplication_run 
+  :: (Ptr RawTApplication) -> CInt -> IO ()
+
+foreign import ccall "HROOT.h TRint_Run" c_trint_run 
+  :: (Ptr RawTRint) -> CInt -> IO ()
+foreign import ccall "HROOT.h TRint_GetName" c_trint_getname 
+  :: (Ptr RawTRint) -> IO CString
+foreign import ccall "HROOT.h TRint_Draw" c_trint_draw 
+  :: (Ptr RawTRint) -> CString -> IO ()
+foreign import ccall "HROOT.h TRint_SaveAs" c_trint_saveas 
+  :: (Ptr RawTRint) -> CString -> CString -> IO ()
+foreign import ccall "HROOT.h TRint_Write" c_trint_write 
+  :: (Ptr RawTRint) -> CString -> CInt -> CInt -> IO CInt
+foreign import ccall "HROOT.h TRint_newTRint" c_trint_newtrint 
+  :: CString -> (Ptr CInt) -> (Ptr (CString)) -> IO (Ptr RawTRint)
+
+
diff --git a/src/HROOT/Type.hs b/src/HROOT/Type.hs
new file mode 100644
--- /dev/null
+++ b/src/HROOT/Type.hs
@@ -0,0 +1,866 @@
+{-# LANGUAGE ForeignFunctionInterface, TypeFamilies, MultiParamTypeClasses, 
+             FlexibleInstances, TypeSynonymInstances, UndecidableInstances, 
+             EmptyDataDecls, IncoherentInstances #-}
+
+module HROOT.Type where
+
+import Foreign.C            
+import Foreign.Ptr
+import Foreign.ForeignPtr
+import Foreign.Marshal.Array
+
+
+import System.IO.Unsafe
+
+class Castable a b where
+  cast :: a -> b 
+  uncast :: b -> a 
+
+instance Castable a a where
+  cast = id
+  uncast = id
+
+instance Castable Int CInt where
+  cast = fromIntegral 
+  uncast = fromIntegral
+  
+instance Castable Double CDouble where
+  cast = realToFrac
+  uncast = realToFrac 
+
+instance Castable [Double] (Ptr CDouble) where
+  cast xs = unsafePerformIO (newArray (map realToFrac xs))
+  uncast _c_xs = undefined 
+
+instance Castable [Int] (Ptr CInt) where
+  cast xs = unsafePerformIO (newArray (map fromIntegral xs))
+  uncast _c_xs = undefined 
+
+instance Castable String CString where
+  cast x = unsafePerformIO (newCString x)
+  uncast x = unsafePerformIO (peekCString x) 
+
+instance Castable [String] (Ptr CString) where
+  cast xs = unsafePerformIO (mapM  newCString xs >>= newArray)
+  uncast _c_xs = undefined
+
+
+instance (FPtr a, Ptr (Raw a) ~ ptrrawa) => Castable a ptrrawa where
+  cast = unsafeForeignPtrToPtr.get_fptr
+  uncast x = cast_fptr_to_obj (unsafePerformIO (newForeignPtr_ x)) 
+
+instance (Castable a a', Castable b b') => Castable (a->b) (a'->b') where
+  cast f = cast . f . uncast
+  uncast f = uncast . f . cast 
+
+
+xformnull :: (Castable a ca) => (IO ca) -> IO a
+xformnull f = f >>= return . uncast
+
+xform0 :: (Castable a ca, Castable y cy) 
+       => (ca -> IO cy) -> a -> IO y
+xform0 f a = f (cast a) >>= return . uncast 
+
+xform1 :: (Castable a ca, Castable x1 cx1, Castable y cy) 
+       => (ca -> cx1 -> IO cy) -> a -> x1 -> IO y
+xform1 f a x1 = f (cast a) (cast x1) >>= return . uncast 
+
+xform2 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> IO cy) -> a -> x1 -> x2-> IO y
+xform2 f a x1 x2 = f (cast a) (cast x1) (cast x2) >>= return . uncast 
+
+xform3 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> IO cy) -> a -> x1 -> x2 -> x3 -> IO y
+xform3 f a x1 x2 x3 = f (cast a) (cast x1) (cast x2) (cast x3) >>= return . uncast 
+
+xform4 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> IO y
+xform4 f a x1 x2 x3 x4 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) >>= return . uncast 
+
+xform5 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> IO cy) -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> IO y
+xform5 f a x1 x2 x3 x4 x5 = f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) >>= return . uncast 
+
+xform6 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> IO y
+xform6 f a x1 x2 x3 x4 x5 x6 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) 
+  >>= return . uncast 
+
+xform7 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> IO y
+xform7 f a x1 x2 x3 x4 x5 x6 x7 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7)
+  >>= return . uncast 
+
+xform8 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> IO y
+xform8 f a x1 x2 x3 x4 x5 x6 x7 x8 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8)
+  >>= return . uncast 
+
+xform9 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+           Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9, 
+           Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> IO y
+xform9 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9)
+  >>= return . uncast 
+
+xform10 :: (Castable a ca, Castable x1 cx1, Castable x2 cx2, Castable x3 cx3, Castable x4 cx4,
+            Castable x5 cx5, Castable x6 cx6, Castable x7 cx7, Castable x8 cx8, Castable x9 cx9,  
+            Castable x10 cx10, Castable y cy) 
+       => (ca -> cx1 -> cx2 -> cx3 -> cx4 -> cx5 -> cx6 -> cx7 -> cx8 -> cx9 -> cx10 -> IO cy) 
+          -> a -> x1 -> x2 -> x3 -> x4 -> x5 -> x6 -> x7 -> x8 -> x9 -> x10 -> IO y
+xform10 f a x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 = 
+  f (cast a) (cast x1) (cast x2) (cast x3) (cast x4) (cast x5) (cast x6) (cast x7) (cast x8) (cast x9) (cast x10) >>= return . uncast 
+
+
+
+class FPtr a where
+    type Raw a :: *
+    get_fptr :: a -> ForeignPtr (Raw a) 
+    cast_fptr_to_obj :: ForeignPtr (Raw a) -> a
+
+data RawTObject
+newtype TObject = TObject (ForeignPtr RawTObject) deriving (Eq, Ord, Show)
+instance FPtr TObject where
+   type Raw TObject = RawTObject
+   get_fptr (TObject fptr) = fptr
+   cast_fptr_to_obj = TObject
+
+data RawTNamed
+newtype TNamed = TNamed (ForeignPtr RawTNamed) deriving (Eq, Ord, Show)
+instance FPtr TNamed where
+   type Raw TNamed = RawTNamed
+   get_fptr (TNamed fptr) = fptr
+   cast_fptr_to_obj = TNamed
+
+data RawTFormula
+newtype TFormula = TFormula (ForeignPtr RawTFormula) deriving (Eq, Ord, Show)
+instance FPtr TFormula where
+   type Raw TFormula = RawTFormula
+   get_fptr (TFormula fptr) = fptr
+   cast_fptr_to_obj = TFormula
+
+data RawTAtt3D
+newtype TAtt3D = TAtt3D (ForeignPtr RawTAtt3D) deriving (Eq, Ord, Show)
+instance FPtr TAtt3D where
+   type Raw TAtt3D = RawTAtt3D
+   get_fptr (TAtt3D fptr) = fptr
+   cast_fptr_to_obj = TAtt3D
+
+data RawTAttAxis
+newtype TAttAxis = TAttAxis (ForeignPtr RawTAttAxis) deriving (Eq, Ord, Show)
+instance FPtr TAttAxis where
+   type Raw TAttAxis = RawTAttAxis
+   get_fptr (TAttAxis fptr) = fptr
+   cast_fptr_to_obj = TAttAxis
+
+data RawTAttBBox
+newtype TAttBBox = TAttBBox (ForeignPtr RawTAttBBox) deriving (Eq, Ord, Show)
+instance FPtr TAttBBox where
+   type Raw TAttBBox = RawTAttBBox
+   get_fptr (TAttBBox fptr) = fptr
+   cast_fptr_to_obj = TAttBBox
+
+data RawTAttCanvas
+newtype TAttCanvas = TAttCanvas (ForeignPtr RawTAttCanvas) deriving (Eq, Ord, Show)
+instance FPtr TAttCanvas where
+   type Raw TAttCanvas = RawTAttCanvas
+   get_fptr (TAttCanvas fptr) = fptr
+   cast_fptr_to_obj = TAttCanvas
+
+data RawTAttFill
+newtype TAttFill = TAttFill (ForeignPtr RawTAttFill) deriving (Eq, Ord, Show)
+instance FPtr TAttFill where
+   type Raw TAttFill = RawTAttFill
+   get_fptr (TAttFill fptr) = fptr
+   cast_fptr_to_obj = TAttFill
+
+data RawTAttImage
+newtype TAttImage = TAttImage (ForeignPtr RawTAttImage) deriving (Eq, Ord, Show)
+instance FPtr TAttImage where
+   type Raw TAttImage = RawTAttImage
+   get_fptr (TAttImage fptr) = fptr
+   cast_fptr_to_obj = TAttImage
+
+data RawTAttLine
+newtype TAttLine = TAttLine (ForeignPtr RawTAttLine) deriving (Eq, Ord, Show)
+instance FPtr TAttLine where
+   type Raw TAttLine = RawTAttLine
+   get_fptr (TAttLine fptr) = fptr
+   cast_fptr_to_obj = TAttLine
+
+data RawTAttMarker
+newtype TAttMarker = TAttMarker (ForeignPtr RawTAttMarker) deriving (Eq, Ord, Show)
+instance FPtr TAttMarker where
+   type Raw TAttMarker = RawTAttMarker
+   get_fptr (TAttMarker fptr) = fptr
+   cast_fptr_to_obj = TAttMarker
+
+data RawTAttPad
+newtype TAttPad = TAttPad (ForeignPtr RawTAttPad) deriving (Eq, Ord, Show)
+instance FPtr TAttPad where
+   type Raw TAttPad = RawTAttPad
+   get_fptr (TAttPad fptr) = fptr
+   cast_fptr_to_obj = TAttPad
+
+data RawTAttParticle
+newtype TAttParticle = TAttParticle (ForeignPtr RawTAttParticle) deriving (Eq, Ord, Show)
+instance FPtr TAttParticle where
+   type Raw TAttParticle = RawTAttParticle
+   get_fptr (TAttParticle fptr) = fptr
+   cast_fptr_to_obj = TAttParticle
+
+data RawTAttText
+newtype TAttText = TAttText (ForeignPtr RawTAttText) deriving (Eq, Ord, Show)
+instance FPtr TAttText where
+   type Raw TAttText = RawTAttText
+   get_fptr (TAttText fptr) = fptr
+   cast_fptr_to_obj = TAttText
+
+data RawTHStack
+newtype THStack = THStack (ForeignPtr RawTHStack) deriving (Eq, Ord, Show)
+instance FPtr THStack where
+   type Raw THStack = RawTHStack
+   get_fptr (THStack fptr) = fptr
+   cast_fptr_to_obj = THStack
+
+data RawTF1
+newtype TF1 = TF1 (ForeignPtr RawTF1) deriving (Eq, Ord, Show)
+instance FPtr TF1 where
+   type Raw TF1 = RawTF1
+   get_fptr (TF1 fptr) = fptr
+   cast_fptr_to_obj = TF1
+
+data RawTGraph
+newtype TGraph = TGraph (ForeignPtr RawTGraph) deriving (Eq, Ord, Show)
+instance FPtr TGraph where
+   type Raw TGraph = RawTGraph
+   get_fptr (TGraph fptr) = fptr
+   cast_fptr_to_obj = TGraph
+
+data RawTGraphAsymmErrors
+newtype TGraphAsymmErrors = TGraphAsymmErrors (ForeignPtr RawTGraphAsymmErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphAsymmErrors where
+   type Raw TGraphAsymmErrors = RawTGraphAsymmErrors
+   get_fptr (TGraphAsymmErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphAsymmErrors
+
+data RawTCutG
+newtype TCutG = TCutG (ForeignPtr RawTCutG) deriving (Eq, Ord, Show)
+instance FPtr TCutG where
+   type Raw TCutG = RawTCutG
+   get_fptr (TCutG fptr) = fptr
+   cast_fptr_to_obj = TCutG
+
+data RawTGraphBentErrors
+newtype TGraphBentErrors = TGraphBentErrors (ForeignPtr RawTGraphBentErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphBentErrors where
+   type Raw TGraphBentErrors = RawTGraphBentErrors
+   get_fptr (TGraphBentErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphBentErrors
+
+data RawTGraphErrors
+newtype TGraphErrors = TGraphErrors (ForeignPtr RawTGraphErrors) deriving (Eq, Ord, Show)
+instance FPtr TGraphErrors where
+   type Raw TGraphErrors = RawTGraphErrors
+   get_fptr (TGraphErrors fptr) = fptr
+   cast_fptr_to_obj = TGraphErrors
+
+data RawTGraphPolar
+newtype TGraphPolar = TGraphPolar (ForeignPtr RawTGraphPolar) deriving (Eq, Ord, Show)
+instance FPtr TGraphPolar where
+   type Raw TGraphPolar = RawTGraphPolar
+   get_fptr (TGraphPolar fptr) = fptr
+   cast_fptr_to_obj = TGraphPolar
+
+data RawTGraphQQ
+newtype TGraphQQ = TGraphQQ (ForeignPtr RawTGraphQQ) deriving (Eq, Ord, Show)
+instance FPtr TGraphQQ where
+   type Raw TGraphQQ = RawTGraphQQ
+   get_fptr (TGraphQQ fptr) = fptr
+   cast_fptr_to_obj = TGraphQQ
+
+data RawTEllipse
+newtype TEllipse = TEllipse (ForeignPtr RawTEllipse) deriving (Eq, Ord, Show)
+instance FPtr TEllipse where
+   type Raw TEllipse = RawTEllipse
+   get_fptr (TEllipse fptr) = fptr
+   cast_fptr_to_obj = TEllipse
+
+data RawTArc
+newtype TArc = TArc (ForeignPtr RawTArc) deriving (Eq, Ord, Show)
+instance FPtr TArc where
+   type Raw TArc = RawTArc
+   get_fptr (TArc fptr) = fptr
+   cast_fptr_to_obj = TArc
+
+data RawTCrown
+newtype TCrown = TCrown (ForeignPtr RawTCrown) deriving (Eq, Ord, Show)
+instance FPtr TCrown where
+   type Raw TCrown = RawTCrown
+   get_fptr (TCrown fptr) = fptr
+   cast_fptr_to_obj = TCrown
+
+data RawTLine
+newtype TLine = TLine (ForeignPtr RawTLine) deriving (Eq, Ord, Show)
+instance FPtr TLine where
+   type Raw TLine = RawTLine
+   get_fptr (TLine fptr) = fptr
+   cast_fptr_to_obj = TLine
+
+data RawTArrow
+newtype TArrow = TArrow (ForeignPtr RawTArrow) deriving (Eq, Ord, Show)
+instance FPtr TArrow where
+   type Raw TArrow = RawTArrow
+   get_fptr (TArrow fptr) = fptr
+   cast_fptr_to_obj = TArrow
+
+data RawTGaxis
+newtype TGaxis = TGaxis (ForeignPtr RawTGaxis) deriving (Eq, Ord, Show)
+instance FPtr TGaxis where
+   type Raw TGaxis = RawTGaxis
+   get_fptr (TGaxis fptr) = fptr
+   cast_fptr_to_obj = TGaxis
+
+data RawTShape
+newtype TShape = TShape (ForeignPtr RawTShape) deriving (Eq, Ord, Show)
+instance FPtr TShape where
+   type Raw TShape = RawTShape
+   get_fptr (TShape fptr) = fptr
+   cast_fptr_to_obj = TShape
+
+data RawTBRIK
+newtype TBRIK = TBRIK (ForeignPtr RawTBRIK) deriving (Eq, Ord, Show)
+instance FPtr TBRIK where
+   type Raw TBRIK = RawTBRIK
+   get_fptr (TBRIK fptr) = fptr
+   cast_fptr_to_obj = TBRIK
+
+data RawTTUBE
+newtype TTUBE = TTUBE (ForeignPtr RawTTUBE) deriving (Eq, Ord, Show)
+instance FPtr TTUBE where
+   type Raw TTUBE = RawTTUBE
+   get_fptr (TTUBE fptr) = fptr
+   cast_fptr_to_obj = TTUBE
+
+data RawTPCON
+newtype TPCON = TPCON (ForeignPtr RawTPCON) deriving (Eq, Ord, Show)
+instance FPtr TPCON where
+   type Raw TPCON = RawTPCON
+   get_fptr (TPCON fptr) = fptr
+   cast_fptr_to_obj = TPCON
+
+data RawTPolyLineShape
+newtype TPolyLineShape = TPolyLineShape (ForeignPtr RawTPolyLineShape) deriving (Eq, Ord, Show)
+instance FPtr TPolyLineShape where
+   type Raw TPolyLineShape = RawTPolyLineShape
+   get_fptr (TPolyLineShape fptr) = fptr
+   cast_fptr_to_obj = TPolyLineShape
+
+data RawTSPHE
+newtype TSPHE = TSPHE (ForeignPtr RawTSPHE) deriving (Eq, Ord, Show)
+instance FPtr TSPHE where
+   type Raw TSPHE = RawTSPHE
+   get_fptr (TSPHE fptr) = fptr
+   cast_fptr_to_obj = TSPHE
+
+data RawTXTRU
+newtype TXTRU = TXTRU (ForeignPtr RawTXTRU) deriving (Eq, Ord, Show)
+instance FPtr TXTRU where
+   type Raw TXTRU = RawTXTRU
+   get_fptr (TXTRU fptr) = fptr
+   cast_fptr_to_obj = TXTRU
+
+data RawTBox
+newtype TBox = TBox (ForeignPtr RawTBox) deriving (Eq, Ord, Show)
+instance FPtr TBox where
+   type Raw TBox = RawTBox
+   get_fptr (TBox fptr) = fptr
+   cast_fptr_to_obj = TBox
+
+data RawTPave
+newtype TPave = TPave (ForeignPtr RawTPave) deriving (Eq, Ord, Show)
+instance FPtr TPave where
+   type Raw TPave = RawTPave
+   get_fptr (TPave fptr) = fptr
+   cast_fptr_to_obj = TPave
+
+data RawTPaveText
+newtype TPaveText = TPaveText (ForeignPtr RawTPaveText) deriving (Eq, Ord, Show)
+instance FPtr TPaveText where
+   type Raw TPaveText = RawTPaveText
+   get_fptr (TPaveText fptr) = fptr
+   cast_fptr_to_obj = TPaveText
+
+data RawTDiamond
+newtype TDiamond = TDiamond (ForeignPtr RawTDiamond) deriving (Eq, Ord, Show)
+instance FPtr TDiamond where
+   type Raw TDiamond = RawTDiamond
+   get_fptr (TDiamond fptr) = fptr
+   cast_fptr_to_obj = TDiamond
+
+data RawTPaveStats
+newtype TPaveStats = TPaveStats (ForeignPtr RawTPaveStats) deriving (Eq, Ord, Show)
+instance FPtr TPaveStats where
+   type Raw TPaveStats = RawTPaveStats
+   get_fptr (TPaveStats fptr) = fptr
+   cast_fptr_to_obj = TPaveStats
+
+data RawTPavesText
+newtype TPavesText = TPavesText (ForeignPtr RawTPavesText) deriving (Eq, Ord, Show)
+instance FPtr TPavesText where
+   type Raw TPavesText = RawTPavesText
+   get_fptr (TPavesText fptr) = fptr
+   cast_fptr_to_obj = TPavesText
+
+data RawTLegend
+newtype TLegend = TLegend (ForeignPtr RawTLegend) deriving (Eq, Ord, Show)
+instance FPtr TLegend where
+   type Raw TLegend = RawTLegend
+   get_fptr (TLegend fptr) = fptr
+   cast_fptr_to_obj = TLegend
+
+data RawTPaveLabel
+newtype TPaveLabel = TPaveLabel (ForeignPtr RawTPaveLabel) deriving (Eq, Ord, Show)
+instance FPtr TPaveLabel where
+   type Raw TPaveLabel = RawTPaveLabel
+   get_fptr (TPaveLabel fptr) = fptr
+   cast_fptr_to_obj = TPaveLabel
+
+data RawTPaveClass
+newtype TPaveClass = TPaveClass (ForeignPtr RawTPaveClass) deriving (Eq, Ord, Show)
+instance FPtr TPaveClass where
+   type Raw TPaveClass = RawTPaveClass
+   get_fptr (TPaveClass fptr) = fptr
+   cast_fptr_to_obj = TPaveClass
+
+data RawTWbox
+newtype TWbox = TWbox (ForeignPtr RawTWbox) deriving (Eq, Ord, Show)
+instance FPtr TWbox where
+   type Raw TWbox = RawTWbox
+   get_fptr (TWbox fptr) = fptr
+   cast_fptr_to_obj = TWbox
+
+data RawTFrame
+newtype TFrame = TFrame (ForeignPtr RawTFrame) deriving (Eq, Ord, Show)
+instance FPtr TFrame where
+   type Raw TFrame = RawTFrame
+   get_fptr (TFrame fptr) = fptr
+   cast_fptr_to_obj = TFrame
+
+data RawTSliderBox
+newtype TSliderBox = TSliderBox (ForeignPtr RawTSliderBox) deriving (Eq, Ord, Show)
+instance FPtr TSliderBox where
+   type Raw TSliderBox = RawTSliderBox
+   get_fptr (TSliderBox fptr) = fptr
+   cast_fptr_to_obj = TSliderBox
+
+data RawTTree
+newtype TTree = TTree (ForeignPtr RawTTree) deriving (Eq, Ord, Show)
+instance FPtr TTree where
+   type Raw TTree = RawTTree
+   get_fptr (TTree fptr) = fptr
+   cast_fptr_to_obj = TTree
+
+data RawTChain
+newtype TChain = TChain (ForeignPtr RawTChain) deriving (Eq, Ord, Show)
+instance FPtr TChain where
+   type Raw TChain = RawTChain
+   get_fptr (TChain fptr) = fptr
+   cast_fptr_to_obj = TChain
+
+data RawTNtuple
+newtype TNtuple = TNtuple (ForeignPtr RawTNtuple) deriving (Eq, Ord, Show)
+instance FPtr TNtuple where
+   type Raw TNtuple = RawTNtuple
+   get_fptr (TNtuple fptr) = fptr
+   cast_fptr_to_obj = TNtuple
+
+data RawTNtupleD
+newtype TNtupleD = TNtupleD (ForeignPtr RawTNtupleD) deriving (Eq, Ord, Show)
+instance FPtr TNtupleD where
+   type Raw TNtupleD = RawTNtupleD
+   get_fptr (TNtupleD fptr) = fptr
+   cast_fptr_to_obj = TNtupleD
+
+data RawTTreeSQL
+newtype TTreeSQL = TTreeSQL (ForeignPtr RawTTreeSQL) deriving (Eq, Ord, Show)
+instance FPtr TTreeSQL where
+   type Raw TTreeSQL = RawTTreeSQL
+   get_fptr (TTreeSQL fptr) = fptr
+   cast_fptr_to_obj = TTreeSQL
+
+data RawTPolyLine
+newtype TPolyLine = TPolyLine (ForeignPtr RawTPolyLine) deriving (Eq, Ord, Show)
+instance FPtr TPolyLine where
+   type Raw TPolyLine = RawTPolyLine
+   get_fptr (TPolyLine fptr) = fptr
+   cast_fptr_to_obj = TPolyLine
+
+data RawTCurlyLine
+newtype TCurlyLine = TCurlyLine (ForeignPtr RawTCurlyLine) deriving (Eq, Ord, Show)
+instance FPtr TCurlyLine where
+   type Raw TCurlyLine = RawTCurlyLine
+   get_fptr (TCurlyLine fptr) = fptr
+   cast_fptr_to_obj = TCurlyLine
+
+data RawTCurlyArc
+newtype TCurlyArc = TCurlyArc (ForeignPtr RawTCurlyArc) deriving (Eq, Ord, Show)
+instance FPtr TCurlyArc where
+   type Raw TCurlyArc = RawTCurlyArc
+   get_fptr (TCurlyArc fptr) = fptr
+   cast_fptr_to_obj = TCurlyArc
+
+data RawTEfficiency
+newtype TEfficiency = TEfficiency (ForeignPtr RawTEfficiency) deriving (Eq, Ord, Show)
+instance FPtr TEfficiency where
+   type Raw TEfficiency = RawTEfficiency
+   get_fptr (TEfficiency fptr) = fptr
+   cast_fptr_to_obj = TEfficiency
+
+data RawTAxis
+newtype TAxis = TAxis (ForeignPtr RawTAxis) deriving (Eq, Ord, Show)
+instance FPtr TAxis where
+   type Raw TAxis = RawTAxis
+   get_fptr (TAxis fptr) = fptr
+   cast_fptr_to_obj = TAxis
+
+data RawTLatex
+newtype TLatex = TLatex (ForeignPtr RawTLatex) deriving (Eq, Ord, Show)
+instance FPtr TLatex where
+   type Raw TLatex = RawTLatex
+   get_fptr (TLatex fptr) = fptr
+   cast_fptr_to_obj = TLatex
+
+data RawTText
+newtype TText = TText (ForeignPtr RawTText) deriving (Eq, Ord, Show)
+instance FPtr TText where
+   type Raw TText = RawTText
+   get_fptr (TText fptr) = fptr
+   cast_fptr_to_obj = TText
+
+data RawTDirectory
+newtype TDirectory = TDirectory (ForeignPtr RawTDirectory) deriving (Eq, Ord, Show)
+instance FPtr TDirectory where
+   type Raw TDirectory = RawTDirectory
+   get_fptr (TDirectory fptr) = fptr
+   cast_fptr_to_obj = TDirectory
+
+data RawTDirectoryFile
+newtype TDirectoryFile = TDirectoryFile (ForeignPtr RawTDirectoryFile) deriving (Eq, Ord, Show)
+instance FPtr TDirectoryFile where
+   type Raw TDirectoryFile = RawTDirectoryFile
+   get_fptr (TDirectoryFile fptr) = fptr
+   cast_fptr_to_obj = TDirectoryFile
+
+data RawTFile
+newtype TFile = TFile (ForeignPtr RawTFile) deriving (Eq, Ord, Show)
+instance FPtr TFile where
+   type Raw TFile = RawTFile
+   get_fptr (TFile fptr) = fptr
+   cast_fptr_to_obj = TFile
+
+data RawTBranch
+newtype TBranch = TBranch (ForeignPtr RawTBranch) deriving (Eq, Ord, Show)
+instance FPtr TBranch where
+   type Raw TBranch = RawTBranch
+   get_fptr (TBranch fptr) = fptr
+   cast_fptr_to_obj = TBranch
+
+data RawTVirtualTreePlayer
+newtype TVirtualTreePlayer = TVirtualTreePlayer (ForeignPtr RawTVirtualTreePlayer) deriving (Eq, Ord, Show)
+instance FPtr TVirtualTreePlayer where
+   type Raw TVirtualTreePlayer = RawTVirtualTreePlayer
+   get_fptr (TVirtualTreePlayer fptr) = fptr
+   cast_fptr_to_obj = TVirtualTreePlayer
+
+data RawTTreePlayer
+newtype TTreePlayer = TTreePlayer (ForeignPtr RawTTreePlayer) deriving (Eq, Ord, Show)
+instance FPtr TTreePlayer where
+   type Raw TTreePlayer = RawTTreePlayer
+   get_fptr (TTreePlayer fptr) = fptr
+   cast_fptr_to_obj = TTreePlayer
+
+data RawTArray
+newtype TArray = TArray (ForeignPtr RawTArray) deriving (Eq, Ord, Show)
+instance FPtr TArray where
+   type Raw TArray = RawTArray
+   get_fptr (TArray fptr) = fptr
+   cast_fptr_to_obj = TArray
+
+data RawTArrayC
+newtype TArrayC = TArrayC (ForeignPtr RawTArrayC) deriving (Eq, Ord, Show)
+instance FPtr TArrayC where
+   type Raw TArrayC = RawTArrayC
+   get_fptr (TArrayC fptr) = fptr
+   cast_fptr_to_obj = TArrayC
+
+data RawTArrayD
+newtype TArrayD = TArrayD (ForeignPtr RawTArrayD) deriving (Eq, Ord, Show)
+instance FPtr TArrayD where
+   type Raw TArrayD = RawTArrayD
+   get_fptr (TArrayD fptr) = fptr
+   cast_fptr_to_obj = TArrayD
+
+data RawTArrayF
+newtype TArrayF = TArrayF (ForeignPtr RawTArrayF) deriving (Eq, Ord, Show)
+instance FPtr TArrayF where
+   type Raw TArrayF = RawTArrayF
+   get_fptr (TArrayF fptr) = fptr
+   cast_fptr_to_obj = TArrayF
+
+data RawTArrayI
+newtype TArrayI = TArrayI (ForeignPtr RawTArrayI) deriving (Eq, Ord, Show)
+instance FPtr TArrayI where
+   type Raw TArrayI = RawTArrayI
+   get_fptr (TArrayI fptr) = fptr
+   cast_fptr_to_obj = TArrayI
+
+data RawTArrayL
+newtype TArrayL = TArrayL (ForeignPtr RawTArrayL) deriving (Eq, Ord, Show)
+instance FPtr TArrayL where
+   type Raw TArrayL = RawTArrayL
+   get_fptr (TArrayL fptr) = fptr
+   cast_fptr_to_obj = TArrayL
+
+data RawTArrayL64
+newtype TArrayL64 = TArrayL64 (ForeignPtr RawTArrayL64) deriving (Eq, Ord, Show)
+instance FPtr TArrayL64 where
+   type Raw TArrayL64 = RawTArrayL64
+   get_fptr (TArrayL64 fptr) = fptr
+   cast_fptr_to_obj = TArrayL64
+
+data RawTArrayS
+newtype TArrayS = TArrayS (ForeignPtr RawTArrayS) deriving (Eq, Ord, Show)
+instance FPtr TArrayS where
+   type Raw TArrayS = RawTArrayS
+   get_fptr (TArrayS fptr) = fptr
+   cast_fptr_to_obj = TArrayS
+
+data RawTH1
+newtype TH1 = TH1 (ForeignPtr RawTH1) deriving (Eq, Ord, Show)
+instance FPtr TH1 where
+   type Raw TH1 = RawTH1
+   get_fptr (TH1 fptr) = fptr
+   cast_fptr_to_obj = TH1
+
+data RawTH2
+newtype TH2 = TH2 (ForeignPtr RawTH2) deriving (Eq, Ord, Show)
+instance FPtr TH2 where
+   type Raw TH2 = RawTH2
+   get_fptr (TH2 fptr) = fptr
+   cast_fptr_to_obj = TH2
+
+data RawTH3
+newtype TH3 = TH3 (ForeignPtr RawTH3) deriving (Eq, Ord, Show)
+instance FPtr TH3 where
+   type Raw TH3 = RawTH3
+   get_fptr (TH3 fptr) = fptr
+   cast_fptr_to_obj = TH3
+
+data RawTH1C
+newtype TH1C = TH1C (ForeignPtr RawTH1C) deriving (Eq, Ord, Show)
+instance FPtr TH1C where
+   type Raw TH1C = RawTH1C
+   get_fptr (TH1C fptr) = fptr
+   cast_fptr_to_obj = TH1C
+
+data RawTH1D
+newtype TH1D = TH1D (ForeignPtr RawTH1D) deriving (Eq, Ord, Show)
+instance FPtr TH1D where
+   type Raw TH1D = RawTH1D
+   get_fptr (TH1D fptr) = fptr
+   cast_fptr_to_obj = TH1D
+
+data RawTH1F
+newtype TH1F = TH1F (ForeignPtr RawTH1F) deriving (Eq, Ord, Show)
+instance FPtr TH1F where
+   type Raw TH1F = RawTH1F
+   get_fptr (TH1F fptr) = fptr
+   cast_fptr_to_obj = TH1F
+
+data RawTH1I
+newtype TH1I = TH1I (ForeignPtr RawTH1I) deriving (Eq, Ord, Show)
+instance FPtr TH1I where
+   type Raw TH1I = RawTH1I
+   get_fptr (TH1I fptr) = fptr
+   cast_fptr_to_obj = TH1I
+
+data RawTH1S
+newtype TH1S = TH1S (ForeignPtr RawTH1S) deriving (Eq, Ord, Show)
+instance FPtr TH1S where
+   type Raw TH1S = RawTH1S
+   get_fptr (TH1S fptr) = fptr
+   cast_fptr_to_obj = TH1S
+
+data RawTH2C
+newtype TH2C = TH2C (ForeignPtr RawTH2C) deriving (Eq, Ord, Show)
+instance FPtr TH2C where
+   type Raw TH2C = RawTH2C
+   get_fptr (TH2C fptr) = fptr
+   cast_fptr_to_obj = TH2C
+
+data RawTH2D
+newtype TH2D = TH2D (ForeignPtr RawTH2D) deriving (Eq, Ord, Show)
+instance FPtr TH2D where
+   type Raw TH2D = RawTH2D
+   get_fptr (TH2D fptr) = fptr
+   cast_fptr_to_obj = TH2D
+
+data RawTH2F
+newtype TH2F = TH2F (ForeignPtr RawTH2F) deriving (Eq, Ord, Show)
+instance FPtr TH2F where
+   type Raw TH2F = RawTH2F
+   get_fptr (TH2F fptr) = fptr
+   cast_fptr_to_obj = TH2F
+
+data RawTH2I
+newtype TH2I = TH2I (ForeignPtr RawTH2I) deriving (Eq, Ord, Show)
+instance FPtr TH2I where
+   type Raw TH2I = RawTH2I
+   get_fptr (TH2I fptr) = fptr
+   cast_fptr_to_obj = TH2I
+
+data RawTH2Poly
+newtype TH2Poly = TH2Poly (ForeignPtr RawTH2Poly) deriving (Eq, Ord, Show)
+instance FPtr TH2Poly where
+   type Raw TH2Poly = RawTH2Poly
+   get_fptr (TH2Poly fptr) = fptr
+   cast_fptr_to_obj = TH2Poly
+
+data RawTH2S
+newtype TH2S = TH2S (ForeignPtr RawTH2S) deriving (Eq, Ord, Show)
+instance FPtr TH2S where
+   type Raw TH2S = RawTH2S
+   get_fptr (TH2S fptr) = fptr
+   cast_fptr_to_obj = TH2S
+
+data RawTH3C
+newtype TH3C = TH3C (ForeignPtr RawTH3C) deriving (Eq, Ord, Show)
+instance FPtr TH3C where
+   type Raw TH3C = RawTH3C
+   get_fptr (TH3C fptr) = fptr
+   cast_fptr_to_obj = TH3C
+
+data RawTH3D
+newtype TH3D = TH3D (ForeignPtr RawTH3D) deriving (Eq, Ord, Show)
+instance FPtr TH3D where
+   type Raw TH3D = RawTH3D
+   get_fptr (TH3D fptr) = fptr
+   cast_fptr_to_obj = TH3D
+
+data RawTH3F
+newtype TH3F = TH3F (ForeignPtr RawTH3F) deriving (Eq, Ord, Show)
+instance FPtr TH3F where
+   type Raw TH3F = RawTH3F
+   get_fptr (TH3F fptr) = fptr
+   cast_fptr_to_obj = TH3F
+
+data RawTH3I
+newtype TH3I = TH3I (ForeignPtr RawTH3I) deriving (Eq, Ord, Show)
+instance FPtr TH3I where
+   type Raw TH3I = RawTH3I
+   get_fptr (TH3I fptr) = fptr
+   cast_fptr_to_obj = TH3I
+
+data RawTH3S
+newtype TH3S = TH3S (ForeignPtr RawTH3S) deriving (Eq, Ord, Show)
+instance FPtr TH3S where
+   type Raw TH3S = RawTH3S
+   get_fptr (TH3S fptr) = fptr
+   cast_fptr_to_obj = TH3S
+
+data RawTQObject
+newtype TQObject = TQObject (ForeignPtr RawTQObject) deriving (Eq, Ord, Show)
+instance FPtr TQObject where
+   type Raw TQObject = RawTQObject
+   get_fptr (TQObject fptr) = fptr
+   cast_fptr_to_obj = TQObject
+
+data RawTVirtualPad
+newtype TVirtualPad = TVirtualPad (ForeignPtr RawTVirtualPad) deriving (Eq, Ord, Show)
+instance FPtr TVirtualPad where
+   type Raw TVirtualPad = RawTVirtualPad
+   get_fptr (TVirtualPad fptr) = fptr
+   cast_fptr_to_obj = TVirtualPad
+
+data RawTPad
+newtype TPad = TPad (ForeignPtr RawTPad) deriving (Eq, Ord, Show)
+instance FPtr TPad where
+   type Raw TPad = RawTPad
+   get_fptr (TPad fptr) = fptr
+   cast_fptr_to_obj = TPad
+
+data RawTButton
+newtype TButton = TButton (ForeignPtr RawTButton) deriving (Eq, Ord, Show)
+instance FPtr TButton where
+   type Raw TButton = RawTButton
+   get_fptr (TButton fptr) = fptr
+   cast_fptr_to_obj = TButton
+
+data RawTGroupButton
+newtype TGroupButton = TGroupButton (ForeignPtr RawTGroupButton) deriving (Eq, Ord, Show)
+instance FPtr TGroupButton where
+   type Raw TGroupButton = RawTGroupButton
+   get_fptr (TGroupButton fptr) = fptr
+   cast_fptr_to_obj = TGroupButton
+
+data RawTCanvas
+newtype TCanvas = TCanvas (ForeignPtr RawTCanvas) deriving (Eq, Ord, Show)
+instance FPtr TCanvas where
+   type Raw TCanvas = RawTCanvas
+   get_fptr (TCanvas fptr) = fptr
+   cast_fptr_to_obj = TCanvas
+
+data RawTDialogCanvas
+newtype TDialogCanvas = TDialogCanvas (ForeignPtr RawTDialogCanvas) deriving (Eq, Ord, Show)
+instance FPtr TDialogCanvas where
+   type Raw TDialogCanvas = RawTDialogCanvas
+   get_fptr (TDialogCanvas fptr) = fptr
+   cast_fptr_to_obj = TDialogCanvas
+
+data RawTInspectCanvas
+newtype TInspectCanvas = TInspectCanvas (ForeignPtr RawTInspectCanvas) deriving (Eq, Ord, Show)
+instance FPtr TInspectCanvas where
+   type Raw TInspectCanvas = RawTInspectCanvas
+   get_fptr (TInspectCanvas fptr) = fptr
+   cast_fptr_to_obj = TInspectCanvas
+
+data RawTEvePad
+newtype TEvePad = TEvePad (ForeignPtr RawTEvePad) deriving (Eq, Ord, Show)
+instance FPtr TEvePad where
+   type Raw TEvePad = RawTEvePad
+   get_fptr (TEvePad fptr) = fptr
+   cast_fptr_to_obj = TEvePad
+
+data RawTSlider
+newtype TSlider = TSlider (ForeignPtr RawTSlider) deriving (Eq, Ord, Show)
+instance FPtr TSlider where
+   type Raw TSlider = RawTSlider
+   get_fptr (TSlider fptr) = fptr
+   cast_fptr_to_obj = TSlider
+
+data RawTApplication
+newtype TApplication = TApplication (ForeignPtr RawTApplication) deriving (Eq, Ord, Show)
+instance FPtr TApplication where
+   type Raw TApplication = RawTApplication
+   get_fptr (TApplication fptr) = fptr
+   cast_fptr_to_obj = TApplication
+
+data RawTRint
+newtype TRint = TRint (ForeignPtr RawTRint) deriving (Eq, Ord, Show)
+instance FPtr TRint where
+   type Raw TRint = RawTRint
+   get_fptr (TRint fptr) = fptr
+   cast_fptr_to_obj = TRint
