LMD/TFndHLmd.h

00001 // @(#)fROOT/LMD:$Name:  $:$Id: TFndHLmd.h,v 1.18 2007/09/05 10:00:29 Diego_Faso Exp $
00002 // Revision Author: Diego Faso <mailto:faso@to.infn.it>, 2005/06/24
00003 // Oroginal Author: P. Cerello <mailto:cerello@to.infn.it>, 1999; D. Faso <mailto:faso@to.infn.it>, 2006
00004 
00005 #ifndef FROOT_TFndHLmd
00006 #define FROOT_TFndHLmd
00007 
00009 //                                          //
00010 //                TFndHLmd                  //
00011 //                                          //
00012 //  Description of the hit on Lmd           //
00013 //                                          //
00015                                                                       
00016 
00017 #include "TFndHit.h"
00018 
00019 class TFndHLmd : public TFndHit {
00020   
00021  protected:
00022 
00023   Int_t fLayer;
00024   Int_t fChamber;   // Drift Chamber Number : 1-8 (inner)
00025   Int_t fWire;      // Wire Number
00026   Int_t fAdc[2];    // ADC Values
00027   Int_t fTdc[2];    // TDC Values
00028   
00029   // ---
00030   Short_t fBothAdc; // see TFndHit::E_FndHit_BothChan_Flag
00031   Short_t fBothTdc; // see TFndHit::E_FndHit_BothChan_Flag
00032     
00033   Float_t fCalibAdc[2]; // ADC calibrated Values
00034   Float_t fCalibTdc_T0[2]; // TDC calibrated Values (ns) [using COSM trigger]
00035   Float_t fCalibTdc_T0C[2]; // TDC calibrated Values (ns) [using central trigger]
00036   
00037   Float_t fCalibMeanTimer_T0; // Mean timer software calibrated Values (ns) [using COSM trigger]
00038   Float_t fCalibMeanTimer_T0C; // Mean timer software calibrated Values (ns) [using COSM trigger]
00039     
00040  public:
00041   
00042   TFndHLmd(const Int_t &chamber,const Int_t &wire);
00043   TFndHLmd(const Int_t &channel = -1);
00044   ~TFndHLmd();
00045   
00046  private:
00047   void Init(); // initialize all variables
00048   void SetDchIdentifiers(const Int_t &cham_num,const Int_t &wire_num) {
00049     fChannel = TFndDB::Lmd_ChannelToDBNumbering(cham_num,wire_num);
00050     Int_t w;
00051     TFndDB::Lmd_ChNum_To_DetChan(fChannel,fLayer,fChamber,fWire,w);
00052   }
00053   
00054  public:
00055   void EvalHit();
00056   
00057   void GetLayer_Chamber_Wire(Int_t &lay, Int_t &cham, Int_t &wire) 
00058     {
00059       lay = fLayer;  cham = fChamber;  wire = fWire;
00060     }
00061   Int_t GetLayer() const { return fLayer; } // Get DC Layer [1-2]
00062   Int_t GetChamber() const { return fChamber; } // DCH number [1-8]
00063   Int_t GetWire() const { return fWire;   } // Get Wire Number [1,2,...]
00064   
00065   Int_t GetTdcE() const { return fTdc[E_FIN_SIDE_E]; } // Get e-side TDC
00066   Int_t GetTdcP() const { return fTdc[E_FIN_SIDE_P]; } // Get p-side TDC
00067   Int_t GetAdcE() const { return fAdc[E_FIN_SIDE_E]; } // Get e-side ADC
00068   Int_t GetAdcP() const { return fAdc[E_FIN_SIDE_P]; } // Get p-side ADC
00069   
00070   // ---------------
00071 
00072   void SetAdc(Int_t adc,E_Fnd_Side side) { fAdc[side] = adc; }
00073   void SetTdc(Int_t tdc,E_Fnd_Side side) { fTdc[side] = tdc; }
00074 
00075   // ---
00076   // --- Get methods
00077   Bool_t  GetBothAdcFlag()  { return fBothAdc; }
00078   Bool_t  GetBothTdcFlag()  { return fBothTdc; }
00079 
00080   Float_t GetCalibTdcE_T0()  { return fCalibTdc_T0[E_FIN_SIDE_E]; }
00081   Float_t GetCalibTdcP_T0()  { return fCalibTdc_T0[E_FIN_SIDE_P]; }
00082   Float_t GetCalibTdcE_T0C() { return fCalibTdc_T0C[E_FIN_SIDE_E]; }
00083   Float_t GetCalibTdcP_T0C() { return fCalibTdc_T0C[E_FIN_SIDE_P]; }
00084   Float_t GetCalibAdcE() { return fCalibAdc[E_FIN_SIDE_E]; }
00085   Float_t GetCalibAdcP() { return fCalibAdc[E_FIN_SIDE_P]; }
00086 
00087   Float_t GetCalibMeanTimer_T0()  { return fCalibMeanTimer_T0; } // Software Mean timer [calib COSM]
00088   Float_t GetCalibMeanTimer_T0C() { return fCalibMeanTimer_T0C; } // Software Mean timer [calib CENTRAL]
00089 
00090   // --- Set methods
00091   void SetBothAdcFlag(Bool_t both_adc)  { fBothAdc = both_adc; }
00092   void SetBothTdcFlag(Bool_t both_tdc)  { fBothTdc = both_tdc; }
00093   
00094   /*   void SetCalibTdcE_T0(Float_t tdc)  { fCalibTdc_T0[E_FIN_SIDE_E] = tdc; } */
00095   /*   void SetCalibTdcP_T0(Float_t tdc)  { fCalibTdc_T0[E_FIN_SIDE_P] = tdc; } */
00096   /*   void SetCalibTdcE_T0C(Float_t tdc)  { fCalibTdc_T0C[E_FIN_SIDE_E] = tdc; } */
00097   /*   void SetCalibTdcP_T0C(Float_t tdc)  { fCalibTdc_T0C[E_FIN_SIDE_P] = tdc; } */
00098   /*   void SetCalibAdcE(Float_t adc)  { fCalibAdc[E_FIN_SIDE_E] = adc; } */
00099   /*   void SetCalibAdcP(Float_t adc)  { fCalibAdc[E_FIN_SIDE_P] = adc; } */
00100   
00101   /*   void SetCalibMeanTimer_T0(Float_t mean_time) { fCalibMeanTimer_T0 = mean_time; } // Set calibrated Mean timer software */
00102   
00103   void PrintHit(Int_t depth=1);
00104 
00105   ClassDef(TFndHLmd,1)  // The LMD hit
00106   };
00107 
00108 #endif // FROOT_TFndHLmd
00109 
00110 
00111 
00112 
00113 

Generated on Tue Oct 16 15:40:47 2007 by  doxygen 1.5.2