00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 #ifndef HITCALCANA_H 00014 #define HITCALCANA_H 00015 00016 #include <deque> 00017 #include <vector> 00018 #include "TObject.h" 00019 #include "NueAna/NueAnaBase.h" 00020 #include "NueAna/HitCalc.h" 00021 #include "Conventions/PlaneView.h" 00022 00023 class NtpSRRecord; 00024 class NtpSREvent; 00025 00026 class HitCalcAna : public NueAnaBase 00027 { 00028 public: 00029 00030 // Typedefs 00031 typedef std::deque<Int_t> DeqInt_t; 00032 typedef DeqInt_t::iterator IterDeqInt_t; 00033 typedef DeqInt_t::size_type SizeDeqInt_t; 00034 00035 typedef std::deque<Float_t> DeqFloat_t; 00036 typedef DeqFloat_t::iterator IterDeqFloat_t; 00037 00038 typedef std::vector<Int_t> VecInt_t; 00039 typedef VecInt_t::iterator IterVecInt_t; 00040 00041 typedef std::vector<Float_t> VecFloat_t; 00042 typedef VecFloat_t::iterator IterVecFloat_t; 00043 00044 typedef std::deque< std::deque <Int_t> > DeqDeqInt_t; 00045 typedef DeqDeqInt_t::iterator IterDeqDeqInt_t; 00046 typedef DeqDeqInt_t::size_type SizeDeqDeqInt_t; 00047 00048 00049 // Con/de-structors: 00050 HitCalcAna(HitCalc &hc); 00051 virtual ~HitCalcAna(); 00052 00053 // Member variables 00054 DeqFloat_t fX; 00055 DeqFloat_t fY; 00056 DeqFloat_t fZ; 00057 DeqFloat_t fE; 00058 IterDeqFloat_t fHitIndex; 00059 00060 void Analyze(int evtn, RecRecordImp<RecCandHeader> *srobj); 00061 00062 //Calculate 3D Hits for each event 00063 Int_t ComputeHits(RecRecordImp<RecCandHeader> *srobj, NtpSREvent *event); 00064 00065 void Get3DHit(DeqFloat_t &x, DeqFloat_t &y, DeqFloat_t &z, DeqFloat_t &e); 00066 00067 void Reset(); 00068 00069 private: 00070 00071 HitCalc &fHitCalc; 00072 00073 // copy constructor, assignment: 00074 // HitCalcAna(const HitCalcAna& rhs); // copy constructor 00075 // HitCalcAna& operator=(const HitCalcAna& rhs); // assignment 00076 00077 00078 void VarCalc(); // Calculate Hit variables 00079 00080 00081 }; // end of class HitCalcAna 00082 00083 #endif // HITCALCANA_H
1.3.9.1