00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef DMXUTILITIES_H
00013 #define DMXUTILITIES_H
00014
00015 #include "TObject.h"
00016 #include "CandDigit/CandDeMuxDigitHandle.h"
00017 #include "CandDigit/CandDeMuxDigitListHandle.h"
00018
00019
00020 class AlgConfig;
00021 class DmxPlaneItr;
00022 class DmxStatus;
00023
00024
00025 class DmxUtilities : public TObject{
00026
00027 public:
00028
00029 DmxUtilities();
00030 virtual ~DmxUtilities();
00031
00032 void FillPlaneArray(DmxStatus *status, CandDeMuxDigitListHandle &cdlh, AlgConfig &acd);
00033 Float_t CheckForXTalk(Int_t pixel, Float_t *planeSet);
00034 void FillHitPixels(CandDeMuxDigitHandleItr crdhi, Int_t chip,
00035 Float_t *eastSet, Float_t *westSet);
00036 Int_t GetDigitPixel(Int_t channel);
00037 Int_t FindVertexPlane(DmxPlaneItr &planeItr);
00038 Int_t FindEndPlane(DmxPlaneItr &planeItr);
00039 Int_t FindMuonStartPlane(DmxPlaneItr &planeItr, Float_t peGainConversion);
00040 Int_t FindBeamMuonStartPlane(DmxPlaneItr &planeItr, Float_t peGainConversion);
00041 Bool_t IsValidFit(DmxPlaneItr &planeItr, Double_t a1, Double_t a2,
00042 Double_t a3, Double_t a4, Float_t offset);
00043 Bool_t IsValidFit(DmxPlaneItr &planeItr, Double_t a1, Double_t a2,
00044 Double_t a3, Double_t a4);
00045 Int_t FindPlanesOffFit(DmxPlaneItr &planeItr, Int_t strayCut);
00046 Bool_t IsOverlappingMultiple(DmxPlaneItr &planeItr, Float_t vertexZ,Float_t slopeCutOff,
00047 Float_t interceptCutOff, Float_t peakCutOff);
00048 Int_t CheckFit(DmxPlaneItr &planeItr);
00049 Float_t CheckFitWithTiming(DmxPlaneItr &planeItr);
00050 void FindCubicFit(Double_t *x, Double_t *y, Double_t *weight,
00051 Int_t nPoints, Double_t &a1, Double_t &a2,
00052 Double_t &a3, Double_t &a4, Double_t &chiSq);
00053 void FindQuadraticFit(Double_t *x, Double_t *y, Double_t *weight,
00054 Int_t nPoints, Double_t &a1, Double_t &a2,
00055 Double_t &a3, Double_t &chiSq);
00056 void FindLinearFit(Double_t *x, Double_t *y, Double_t *weight,
00057 Int_t nPoints, Double_t &a1, Double_t &a2,
00058 Double_t &chiSq);
00059
00060 private:
00061
00062
00063
00064 ClassDef(DmxUtilities, 0)
00065
00066 };
00067
00068 #endif // DMXUTILITIES_H
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089