Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AngClusterFitAna.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef ANGCLUSTERFITANA_H
00015 #define ANGCLUSTERFITANA_H
00016 
00017 #include <deque>
00018 #include <vector>
00019 #include "TObject.h"
00020 #include "TMatrixD.h"
00021 #include "TVector3.h"
00022 #include "TF1.h"
00023 #include "TMinuit.h"
00024 #include "NueAna/NueAnaBase.h"
00025 #include "NueAna/AngClusterFit.h"
00026 #include "Conventions/PlaneView.h"
00027 
00028 class NtpSRRecord;
00029 class TH1F;
00030 class TH3F;
00031 class TPolyMarker3D;
00032 class TPad;
00033 
00034 class AngClusterFitAna : public NueAnaBase
00035 {
00036 
00037 public:
00038 
00039     // Typedefs an enumerations:
00040     typedef std::deque<Int_t> DeqInt_t;
00041     typedef DeqInt_t::iterator IterDeqInt_t;       
00042     typedef DeqInt_t::size_type SizeDeqInt_t;
00043   
00044     typedef std::deque<Float_t> DeqFloat_t;
00045     typedef DeqFloat_t::iterator IterDeqFloat_t;       
00046 
00047     typedef std::vector<Int_t> VecInt_t;
00048     typedef VecInt_t::iterator IterVecInt_t;    
00049 
00050     typedef std::vector<Float_t> VecFloat_t;
00051     typedef VecFloat_t::iterator IterVecFloat_t;    
00052 
00053     typedef std::deque< std::deque <Int_t> > DeqDeqInt_t;
00054     typedef DeqDeqInt_t::iterator IterDeqDeqInt_t;
00055     typedef DeqDeqInt_t::size_type SizeDeqDeqInt_t;
00056  
00057     typedef std::deque <TMatrixD> DeqTMatrixD;
00058     typedef DeqTMatrixD::iterator IterDeqTMatrixD; 
00059     
00060     typedef std::deque <TPolyMarker3D *> DeqTPoly; 
00061     typedef DeqTPoly::iterator IterDeqTPoly; 
00062     
00063 
00064     // Con/de-structors:
00065     AngClusterFitAna(AngClusterFit &acf);
00066     ~AngClusterFitAna();
00067 
00068     TH1F *fLongHitHisto;  //Longitudinal profile histogram.
00069     TH1F *fLongHitHistoRad;  //Longitudinal profile histogram.
00070     TH1F *fTransHitHisto; //Transverse profile histogram.
00071     TH1F *fTransHitHistoRad; //Transverse profile histogram.
00072 
00073     TH3F *fScatterAxis; //Create 3D plot axis.
00074 
00075     TF1 *fLongFit;  //Longitudinal Fitting function
00076     TF1 *fTransFit; //Transverse Fitting function
00077 
00078     void Set3DHit(DeqFloat_t &x, DeqFloat_t &y, DeqFloat_t &z, DeqFloat_t &e);
00079 
00080     void SetAngCluster(Int_t &primShow
00081                        , DeqDeqInt_t &clusterMap
00082                        , TVector3 &primDir);
00083     
00084     void Analyze(int evtn, RecRecordImp<RecCandHeader> *srobj);
00085     
00086     void FitShower(Float_t totalHitEnergy);
00087 
00088     void TransVarCalc(TH1F *transHisto);
00089 
00090     void Draw(TPad *pad);
00091   
00092     void Reset();
00093 
00094 private:
00095      Double_t GetMaximum(TF1* efit, Double_t xmin=0, Double_t xmax=0);
00096     AngClusterFit &fAngClusterFit;
00097 
00098     // copy constructor, assignment:
00099     // AngClusterFitAna(const AngClusterFitAna& rhs); // copy constructor
00100     // AngClusterFitAna& operator=(const AngClusterFitAna& rhs); // assignment
00101 
00102     //To be set to the referenced HitCalcAna Hit member vectors.
00103     DeqFloat_t fX; 
00104     DeqFloat_t fY; 
00105     DeqFloat_t fZ; 
00106     DeqFloat_t fE; 
00107 
00108     //To be set to referenced AngClusterAna cluster quantities.
00109     Int_t fPrimShow;
00110     DeqDeqInt_t fClusterMap;
00111     TVector3 fPrimDir;
00112 };                              // end of class AngClusterFitAna
00113 
00114 #endif  // ANGCLUSTERFITANA_H

Generated on Mon Feb 15 11:06:22 2010 for loon by  doxygen 1.3.9.1