Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

RecNtupleAlg.h

Go to the documentation of this file.
00001 #ifndef RecNtupleAlg_h
00002 #define RecNtupleAlg_h
00003 
00004 #include "GaudiKernel/Algorithm.h"
00005 #include "GaudiKernel/MsgStream.h"
00006 #include "GaudiKernel/AlgFactory.h"
00007 #include "GaudiKernel/IDataProviderSvc.h"
00008 #include "GaudiKernel/SmartDataPtr.h"
00009 #include "GlastSvc/GlastDetSvc/IGlastDetSvc.h"
00010 #include "ntupleWriterSvc/INTupleWriterSvc.h"
00011 
00012 #include "TkrRecon/ITkrGeometrySvc.h"
00013 #include "TkrRecon/SiClusters.h"
00014 #include "TkrRecon/SiRecObjs.h"
00015 
00016 #include "GlastEvent/Recon/ICsIClusters.h"
00017 
00018 //###############################
00019 class RecNtupleAlg : public Algorithm
00020 //###############################
00021 {
00022 public:
00023         
00025 
00027 
00028         RecNtupleAlg(const std::string& name, ISvcLocator* pSvcLocator);
00029 
00031         virtual ~RecNtupleAlg() {}
00032 
00034         StatusCode initialize();
00036         StatusCode execute();
00038         StatusCode finalize();
00039 
00040 private:
00042     std::string m_tupleName;
00044     INTupleWriterSvc *ntupleWriteSvc;
00046     ITkrGeometrySvc *pGeometry;
00047 };
00048 
00049 
00050 //Define the tracker tuple class here
00051 
00052 class ICsIClusterList;
00053 
00054 //###############################
00055 class RecTupleValues
00056 //###############################
00057 {
00058 public:
00059     RecTupleValues();
00060    ~RecTupleValues() {return;}
00061 
00062     StatusCode calcTupleValues(ICsIClusterList* pCalClusters, SiClusters* pSiClusters, SiRecObjs* pRecObjs, ITkrGeometrySvc* pGeom);
00063     StatusCode fillTupleValues(INTupleWriterSvc* pSvc, const char* pName);
00064 
00065 private:
00066     //Routines to calculate some of the values
00067     void calcSkirtVars(GFgamma* pGamma);
00068     void calcTowerBoundaries(GFgamma* pGamma, ITkrGeometrySvc* pGeom);
00069     void calcActiveDistance(GFgamma* pGamma, ITkrGeometrySvc* pGeom);
00070     void calcExtraHits(SiClusters* pSiClusters, GFgamma* pGamma, ITkrGeometrySvc* pGeom);
00071     void calcEnergyCorrection(GFgamma* pGamma);
00072 
00073     //Calculated in calcSkirtVars
00074     double Rec_Tkr_SkirtX;
00075     double Rec_Tkr_SkirtY;
00076 
00077     //Calculated in TowerBoundaries
00078     double Rec_Conv_Twr_Dist;
00079     double Rec_Fit_xV;
00080     double Rec_Fit_yV;
00081     //Calculated in ActiveDistance
00082     double Rec_Active_Dist;
00083     //Calculated in ExtraHits
00084     double Rec_fst_Hit_Count;
00085     double Rec_Surplus_Hit_Ratio;
00086     double Rec_Outside_Hit_Ratio;
00087     double Rec_showerHits1;
00088     double Rec_showerHits2;
00089     double Rec_Sum_Hits;
00090     //Calclulated in EnergyCorrection
00091     double Rec_CsI_Energy;
00092     double Rec_CsI_Corr_Energy;
00093 };
00094 #endif
00095 

Generated at Wed Nov 21 12:21:21 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000