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

CellCorrectionAlg.h

Go to the documentation of this file.
00001 
00002 #ifndef  CELLCORRECTIONALG_H
00003 #define CELLCORRECTIONALG_H
00004 
00005 #include "Headers.h"
00006 #include "Event.h"
00007 #include "Geometry.h"
00008 #include "SystemAlg.h"
00009 
00010 #include "NoiseAlg.h"
00011 #include "CalibrationAlg.h"
00012 
00013 #include <string>
00014 #include <map>
00015 
00016 using std::string;
00017 using std::map;
00018 
00019 /*! -Class:   CellCorrectionAlg
00020   - Author:   Michel Lefebvre
00021   - Date:     13/8/2003
00022   - Description: CellCorrectionAlg is a systemAlg that computes cell signal correction factors
00023                  - for HV effects
00024                  - for sampling fraction effects
00025                  - for global timing effects
00026                  Corrected signal is obtained by multiplying the signal by the correction factors
00027   */
00028 class CellCorrectionAlg : public SystemAlg {
00029 public:
00030 
00031   /** The user should never need to use this contructor
00032     * @param event A pointer in the event. Information contained in the event
00033     *                             gets refreshed before the execute method is run
00034     * @param hecGeom Pointer to the singleton Geometry object
00035     * @param runHeader Pointer to the singleton HecRunHeader object
00036     */
00037 
00038   CellCorrectionAlg(Event* event, Geometry* hecGeom, Headers* runHeader);
00039 
00040   //! Gets run once at the begining of the event Loop
00041   bool initialize();
00042 
00043   //! Gets run for every event
00044   bool execute();
00045 
00046   //! Gets run after all events have been executed
00047   bool finalize();
00048 
00049   //################################
00050   // hec public methods
00051 
00052   /** Returns a correction factor that corrects for known HV problems
00053     * @param febno channel febno
00054     */
00055   float hecHVCorrection(int febno);
00056 
00057   /** Returns a correction factor that corrects for sampling fraction
00058     * The HEC first wheel is associated with a factor of 1.
00059     * @param febno channel febno
00060     */
00061   float hecSamplingFractionCorrection(int febno);
00062 
00063   /** Returns a correction factor that corrects for global time
00064     * (TDC or global cubic) signal dependency due to imperfect digital
00065     * filtering weights.
00066     * @param febno channel febno
00067     */
00068   float hecGlobalTimeCorrection(int febno);
00069 
00070   //################################
00071   // emec public methods
00072 
00073   /** Returns a correction factor that corrects for known HV problems
00074     * and/or emec HV features
00075     * @param febno channel febno
00076     */
00077   float emecHVCorrection(int febno);
00078 
00079   /** Returns a correction factor that corrects for sampling fraction
00080     * @param febno channel febno
00081     */
00082   float emecSamplingFractionCorrection(int febno);
00083 
00084   /** Returns a correction factor that corrects for global time
00085     * (TDC or global cubic) signal dependency due to imperfect digital
00086     * filtering weights.
00087     * @param febno channel febno
00088     */
00089   float emecGlobalTimeCorrection(int febno);
00090 
00091   /** Returns the LAr gap thickness (cm) in the emec for a given rho (cm)
00092     * @param rho distance to the z axis of the local detector coordinate system
00093     */
00094   float emecGapThickness(float rho);
00095 
00096   //################################
00097   // other public methods
00098 
00099   /** Computes the electron drift velocity (cm/ns) in LAr given
00100     * the electric field stregth (kV/cm)
00101     * @param EField electric field stregth (kV/cm)
00102     */
00103   float LArDriftVelocity(float EField);
00104 
00105 private:
00106 
00107   //################################
00108   // private variables
00109 
00110   Geometry* m_geo;
00111   Event* m_event;
00112   Headers* m_runHeader;
00113 
00114   //################################
00115   // other private variables and methods
00116 
00117 };
00118 
00119 #endif

Generated on Fri Aug 15 10:52:04 2003 for TBRootAna by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002