00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013 #ifndef DMXSHOWERPLANE_H
00014 #define DMXSHOWERPLANE_H
00015
00016 #include "Candidate/CandHandle.h"
00017 #include "CandDigit/CandDeMuxDigitHandle.h"
00018 #include "DeMux/DmxPlane.h"
00019 #include "Navigation/XxxItr.h"
00020 #include "DeMux/DmxCompareTypes.h"
00021 #include "UgliGeometry/UgliGeomHandle.h"
00022
00023 XXXITRDEF(TObject)
00024
00025 class AlgConfig;
00026 class DmxHypothesis;
00027
00028 class DmxShowerPlane : public DmxPlane{
00029
00030 public:
00031 DmxShowerPlane();
00032 DmxShowerPlane(AlgConfig &acd, CandDeMuxDigitHandleItr &cdhitr, Int_t planeNumber);
00033 virtual ~DmxShowerPlane();
00034 Float_t GetBestCoG() const;
00035 DmxHypothesis *GetBestHypothesis();
00036 Float_t GetCoG() const;
00037 Float_t GetStripCoG() const;
00038 DmxHypothesis *GetHypothesis(Int_t hypoLowerBound);
00039 Float_t GetHypothesisCoG(Int_t hypoLowerBound);
00040 Float_t GetPlaneCharge() const;
00041 Int_t GetPlaneNumber() const;
00042 Int_t GetHypothesisLowerBound(Float_t tPos) const;
00043 DmxPlaneTypes::PlaneType_t GetPlaneType() const;
00044 PlaneView::PlaneView_t GetPlaneView() const;
00045 Float_t GetSecondBestCoG() const;
00046 DmxHypothesis *GetSecondBestHypothesis();
00047 DmxHypothesis *GetSetHypothesis();
00048 Float_t GetThirdBestCoG() const;
00049 DmxHypothesis *GetThirdBestHypothesis();
00050 Float_t GetTimingOffset();
00051 Bool_t GetStripsSetFlag() const;
00052 Float_t GetZPosition() const;
00053 Int_t GetNumberOfStrips() const;
00054 Bool_t IsValid() const;
00055 Bool_t IsStray() const;
00056 Bool_t IsGolden() const;
00057 void PrintRecon();
00058 void PrintRecon(Int_t hypoLowerBound);
00059 void SetStrips();
00060 void SetStrips(const Char_t *option);
00061 void SetStrips(Float_t tPos);
00062 void SetStripsSetFlag(Int_t flag);
00063 void SetStray(bool stray);
00064 void SetGolden(bool Golden);
00065
00066 private:
00067
00068
00069
00070
00071 Float_t fBestCoG;
00072 DmxHypothesis *fBestHypo;
00073 Float_t fCoG;
00074 Int_t fCompare;
00075 TObjArray *fHypothesisArray;
00076 bool fIsValid;
00077 bool fIsStray;
00078 bool fIsGolden;
00079 Int_t fNumberOfHypotheses;
00080 Int_t fNumberOfStrips;
00081 Float_t fPlaneCharge;
00082 Int_t fPlaneNumber;
00083 DmxPlaneTypes::PlaneType_t fPlaneType;
00084 PlaneView::PlaneView_t fPlaneView;
00085 Float_t fSecondBestCoG;
00086 DmxHypothesis *fSecondBestHypo;
00087 DmxHypothesis *fSetHypo;
00088 Float_t fThirdBestCoG;
00089 DmxHypothesis *fThirdBestHypo;
00090 Int_t fStripsSet;
00091 UgliGeomHandle *fUgh;
00092
00093
00094
00095 DmxCompareTypes::CompareType_t CompareHypotheses(DmxHypothesis *hypo1,
00096 DmxHypothesis *hypo2);
00097
00098 ClassDef(DmxShowerPlane,2)
00099
00100 };
00101
00102 #endif // DMXSHOWERPLANE_H
00103
00104
00105
00106
00107
00108
00109
00110