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

AltDeMuxCalc.h

Go to the documentation of this file.
00001 
00002 // $Id: AltDeMuxCalc.h,v 1.3 2005/04/20 13:25:56 thomson Exp $
00003 //
00004 // An object for calculating useful quantities in the demuxing
00005 // algorithm. 
00006 //
00007 // Author:  M. Thosmson April 2003
00009 #ifndef ALTDEMUXCALC_H
00010 #define ALTDEMUXCALC_H
00011 
00012 #include "TObject.h"
00013 #include "Plex/PlexSEIdAltL.h"
00014 #include "UgliGeometry/UgliGeomHandle.h"
00015 #include "UgliGeometry/UgliStripHandle.h"
00016 #include "AltDeMuxStructures.h"
00017 
00018 //......................................................................
00019 
00020 class AltDeMuxCalc :  public TObject
00021 {
00022 
00023  public:
00024   AltDeMuxCalc();
00025   ~AltDeMuxCalc();
00026   void SetClearFibreC(Float_t c){fClearFibreC=c;};
00027   void SetWLSFibreC(Float_t c){fWLSFibreC=c;};
00028   void SetScintillatorC(Float_t c){fScintillatorC=c;fDt2Dstrip=fScintillatorC/2.0/0.042;};
00029   void SetNumberOfStrips(Int_t n){fNumberOfStrips=n;};
00030   void SetFibreLengthE(Int_t iplane, PlexSEIdAltL* paltlist);
00031   void SetFibreLengthW(Int_t iplane, PlexSEIdAltL* paltlist);
00032   void SetUgli(UgliGeomHandle* p){pUgh=p;};
00033   void SetPlane(Int_t iplane){fPlane = iplane;}; 
00034   void SetView(PlaneView::PlaneView_t view){fView=view ;};
00035   void SetEast(PlexSEIdAltL* pListE, Int_t stripE);
00036   void SetWest(PlexSEIdAltL* pListW, Int_t stripW);
00037   void SetEastToStrip(PlexSEIdAltL* pListE, Int_t stripE);
00038   void SetWestToStrip(PlexSEIdAltL* pListW, Int_t stripW);
00039   void SetAbsTime(Double_t absTime){fAbsTime = absTime;};
00040   Double_t GetAbsTime(){return fAbsTime;};
00041   void CalcEastWest();
00042   void CalcEast();
00043   void CalcWest();
00044   void CalcBestEastWest();
00045   void CalcBestEast();
00046   void CalcBestWest();
00047   void CalcDt();
00048   Int_t StripAim();
00049   Float_t CurrentQ(PlexSEIdAltL* pAltList);
00050   Float_t AttCorWLS(Float_t lWlsInMetres);
00051   Float_t AttCorClear(Float_t lClearInMetres);
00052   Float_t SigmaDQ();
00053   Float_t QRawE(){return fQE;};
00054   Float_t QRawW(){return fQW;};
00055   Float_t QSigCorE(){return fQEc;};
00056   Float_t QSigCorW(){return fQWc;};
00057   Float_t QAttCorE(){return fQAttCorE;};
00058   Float_t QAttCorW(){return fQAttCorW;};
00059   Float_t PairQCor(){return fQWc+fQEc;}
00060   Float_t GetClearE(){return fClearE;}
00061   Float_t GetClearW(){return fClearW;}
00062   Float_t GetWlsE(){return fWlsE;}
00063   Float_t GetWlsW(){return fWlsW;}
00064   Double_t GetTE(){return fTE;}
00065   Double_t GetTW(){return fTW;}
00066   Float_t DT(){return fDt;}
00067   Float_t TimeWalk(float adc);
00068   void FindNearestEdge(Float_t x, Float_t y, Int_t &iedge, Float_t &d);
00069 
00070 private:
00071 
00072   UgliGeomHandle* pUgh;
00073   Int_t fPlane;
00074   PlaneView::PlaneView_t fView;
00075   PlexSEIdAltL* pAltListE;
00076   PlexSEIdAltL* pAltListW;
00077   Double_t fAbsTime;
00078   bool fEastIsSet;
00079   bool fWestIsSet;
00080   bool fDtIsSet;
00081   bool fDQIsSet;
00082   
00083   Int_t fStripE;
00084   Int_t fStripW;
00085   Float_t fQE;
00086   Float_t fQW;
00087   Float_t fQEc;
00088   Float_t fQWc;
00089   Float_t fQAttCorE;
00090   Float_t fQAttCorW;
00091   Float_t fClearE;
00092   Float_t fClearW;
00093   Float_t fWlsE;
00094   Float_t fWlsW;
00095   Double_t fTE;
00096   Double_t fTW;
00097   Double_t fDt;
00098   Float_t fDQ;
00099   Int_t   fStripAim;
00100   Float_t fQEcor;
00101   Float_t fQWcor;
00102   Float_t fClearFibreC;
00103   Float_t fWLSFibreC;
00104   Float_t fScintillatorC;
00105   Float_t fDt2Dstrip;
00106 
00107   Int_t   fNumberOfStrips;
00108 
00109 
00110 // Fibre lengths for the EVENT - used often so store in large arrays 
00111   Float_t  fWLSFibreLengthE[MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS];
00112   Float_t  fWLSFibreLengthW[MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS];
00113   Float_t  fClearFibreLengthE[MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS];
00114   Float_t  fClearFibreLengthW[MAX_NUMBER_OF_PLANES][MAX_NUMBER_OF_STRIPS];
00115 // Lookup tables for Attenuation corrections 
00116   Float_t fAttCorWLS[2500];
00117   Float_t fAttCorClear[2500];
00118 
00119   ClassDef(AltDeMuxCalc, 0);
00120 };
00121 
00122 #endif // ALTDEMUXCALC_H
00123 

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