ROOT logo
/*!\class PelTools
\author Alexandre A. P. Suaide 

<p>
This class provides the basic functionality for data analysis using ROOT. It has tools
such as projections, fiting, polygonals, etc. 
*/
#ifndef PelTools_HH

#define PelTools_HH

#include "TNamed.h"


#include <TGClient.h>

#include <TGButton.h>

#include <TGMenu.h>

#include "TGShutter.h"

#include "TBrowser.h"

#include "TFile.h"

#include "TString.h"

#include "TControlBar.h"

#include "TCutG.h"

#include "TGLabel.h"

#include "TGTextBuffer.h"

#include "TGTextEntry.h"

#include "TGButton.h"

#include "TString.h"

#include "TH1.h"

#include "TH2.h"

#include "TF1.h"

#include "TDialog.h"
#include "TList.h"

#include "TPeakFitGUI.h"
#include <fstream>

#include "TGTextView.h"

#include "TROOT.h"

#include "TDirectory.h"

#include "TGClient.h"

#include "TGMsgBox.h"

#include "TGFileDialog.h" 

#include "TPad.h"

#include "TLine.h"

#include "TSpectrum.h"

#include "log.hh"

#include "TObjString.h"

#include "TDynamicSlice.h"
#include "TContainer.h"

#include <iostream>

using namespace std;


class PelTools : public TNamed
{
  private:    
    TFile            *mCutF;
    TList            *mList;
    TCutG            *mCut;
		TF1              *mBackLin;		
		TGMainFrame*     fMainFrame1186;
		bool             isGUIActive;
		short int        mIndex;
		TString          mF;
		TString          mFHIS;
		TString          mFDRR;
		TContainer*      mHist;
          
    void             del(char*);
    TList*           makeList(char*);  		
		TGTextButton*    addButton(TGCompositeFrame*, char*, char*, 
		                           int, int, int, int, 
															 int = 0x0000ff, int = 0xfffdc7);
        
  public:
                     PelTools();
    virtual         ~PelTools();
    
    // these methods are to be used only from the GUI

    void             createFileGUI();
    void             openFileGUI();
    void             saveCutGUI();
    void             drawTH2Cut();
    TCutG*           getCutGUI();
    void             fitGUI();
    void             integralGUI();
    void             integralCutGUI();
    void             drawProjectionCut(int);
    void             exportAsciiGUI();
    void             importAsciiGUI();
    void             importDammGUI();
		void             dynamicalProjGUI(int);
		void             integralDump(TH1D*, float, float, TLine* line = NULL);
		void             integralDump(TH2D*, float, float, float, float);
		

    // these are iteractive methods

    void             openFile(char *name, char* flag="");
    void             createFile(char* name);
    void             closeFile();
    void             listFile();
    void             saveCut(char* name="CUTG");
    TCutG*           getCut(char* name="CUTG");
    TCutG*           getCurrCut();
		void             printCurrCut();
		void             drawCurrCut();
    TH2D*            extract(TH2D* h, TCutG* c);
    float            integral(TH1D*,float,float);
    float            integral(TH2D*,float,float,float,float);
    float            counts(TH1D*,float,float);
    float            counts(TH2D*,float,float,float,float);
    void             createCut();
    void             exportAscii(TH1D*,char*,float,float);
    TH1D*            importAscii(char*);
    void             importDamm(char*);
    
    void             menu();
		void             closeMenu();
		void             canvas() { new TCanvas();}
		void             browser() { new TBrowser();}

   
  ClassDef(PelTools,1)
};

#endif

 PelTools.h:1
 PelTools.h:2
 PelTools.h:3
 PelTools.h:4
 PelTools.h:5
 PelTools.h:6
 PelTools.h:7
 PelTools.h:8
 PelTools.h:9
 PelTools.h:10
 PelTools.h:11
 PelTools.h:12
 PelTools.h:13
 PelTools.h:14
 PelTools.h:15
 PelTools.h:16
 PelTools.h:17
 PelTools.h:18
 PelTools.h:19
 PelTools.h:20
 PelTools.h:21
 PelTools.h:22
 PelTools.h:23
 PelTools.h:24
 PelTools.h:25
 PelTools.h:26
 PelTools.h:27
 PelTools.h:28
 PelTools.h:29
 PelTools.h:30
 PelTools.h:31
 PelTools.h:32
 PelTools.h:33
 PelTools.h:34
 PelTools.h:35
 PelTools.h:36
 PelTools.h:37
 PelTools.h:38
 PelTools.h:39
 PelTools.h:40
 PelTools.h:41
 PelTools.h:42
 PelTools.h:43
 PelTools.h:44
 PelTools.h:45
 PelTools.h:46
 PelTools.h:47
 PelTools.h:48
 PelTools.h:49
 PelTools.h:50
 PelTools.h:51
 PelTools.h:52
 PelTools.h:53
 PelTools.h:54
 PelTools.h:55
 PelTools.h:56
 PelTools.h:57
 PelTools.h:58
 PelTools.h:59
 PelTools.h:60
 PelTools.h:61
 PelTools.h:62
 PelTools.h:63
 PelTools.h:64
 PelTools.h:65
 PelTools.h:66
 PelTools.h:67
 PelTools.h:68
 PelTools.h:69
 PelTools.h:70
 PelTools.h:71
 PelTools.h:72
 PelTools.h:73
 PelTools.h:74
 PelTools.h:75
 PelTools.h:76
 PelTools.h:77
 PelTools.h:78
 PelTools.h:79
 PelTools.h:80
 PelTools.h:81
 PelTools.h:82
 PelTools.h:83
 PelTools.h:84
 PelTools.h:85
 PelTools.h:86
 PelTools.h:87
 PelTools.h:88
 PelTools.h:89
 PelTools.h:90
 PelTools.h:91
 PelTools.h:92
 PelTools.h:93
 PelTools.h:94
 PelTools.h:95
 PelTools.h:96
 PelTools.h:97
 PelTools.h:98
 PelTools.h:99
 PelTools.h:100
 PelTools.h:101
 PelTools.h:102
 PelTools.h:103
 PelTools.h:104
 PelTools.h:105
 PelTools.h:106
 PelTools.h:107
 PelTools.h:108
 PelTools.h:109
 PelTools.h:110
 PelTools.h:111
 PelTools.h:112
 PelTools.h:113
 PelTools.h:114
 PelTools.h:115
 PelTools.h:116
 PelTools.h:117
 PelTools.h:118
 PelTools.h:119
 PelTools.h:120
 PelTools.h:121
 PelTools.h:122
 PelTools.h:123