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

AlgDeMuxCosmics.h

Go to the documentation of this file.
00001 
00002 // $Id: AlgDeMuxCosmics.h,v 1.29 2003/05/14 22:48:03 brebel Exp $
00003 //
00004 // AlgDeMuxCosmics
00005 //
00006 // An Algorithm class that DeMultiplexes a cosmic ray event and adjusts the
00007 //weights in the PlexSEIdAltLists of the CandDigits from that event
00008 //
00009 // Author:  B. Rebel 6/2001
00011 
00012 #ifndef ALGDEMUXCOSMICS_H
00013 #define ALGDEMUXCOSMICS_H
00014 
00015 #include "Algorithm/AlgBase.h"
00016 
00017 class DmxPlaneItr;
00018 class DmxStatus;
00019 
00020 class AlgDeMuxCosmics : public AlgBase
00021 {
00022 
00023 public:
00024 
00025 // Constructors and destructors
00026    AlgDeMuxCosmics();
00027    virtual ~AlgDeMuxCosmics();
00028 
00029 // State testing methods
00030    virtual void Trace(const char *c) const;
00031 
00032 // State changing methods
00033    virtual void RunAlg(AlgConfig &acd, CandHandle &ch, CandContext &cx);
00034 
00035 private:
00036 
00037    Double_t fRequiredMatedSignalRatio;
00038    Double_t fSlopeRMS;
00039    Int_t fStrayPlanes;
00040    UInt_t fPlanesInSet;
00041    Int_t fStrayCut;
00042    void FindFit(DmxPlaneItr &planeItr, Double_t &prevChiSq, 
00043                 Double_t &a1, Double_t &a2, Double_t &a3,
00044                 Double_t &a4, Int_t* hypotheses,
00045                 Int_t direction, Int_t leverArm, Float_t offset);
00046    Bool_t FindPlanesToDropFromFit(DmxPlaneItr &planeItr, Double_t a1, Double_t a2,
00047                                   Double_t a3, Double_t a4,
00048                                   Int_t direction, Int_t leverArm, Float_t offset);
00049    void SetPlanesToDeterminedFit(DmxPlaneItr &planeItr, Double_t a1, Double_t a2, 
00050                                  Double_t a3, Double_t a4, Float_t offset);
00051   void SetPlanesToDeterminedFit(DmxPlaneItr &planeItr, Double_t a, Double_t b);
00052    void FindCosmicSolution(DmxPlaneItr &planeItr, DmxPlaneItr &validPlaneItr,
00053                            DmxStatus *status, Double_t &a1, Double_t &a2, 
00054                            Double_t &a3, Double_t &a4, Double_t &chiSq, Float_t offset);
00055    void FindWindowCosmicSolution(DmxPlaneItr &validPlaneItr, DmxStatus *status, 
00056                                  Double_t &a1, Double_t &a2, Double_t &a3, 
00057                                  Double_t &a4, Double_t &chiSq, Float_t offset);
00058    void UseSingleFit(DmxPlaneItr &planeItr, DmxPlaneItr &validPlaneItr, 
00059                      DmxStatus *status);
00060    void UseSlidingWindow(DmxPlaneItr &planeItr, DmxPlaneItr &validPlaneItr,
00061                          DmxPlaneItr &windowPlaneItr, DmxStatus *status, 
00062                          Int_t vertex, Int_t endPlane);     
00063 /*    void FindFit(DmxPlaneItr &planeItr, Double_t &prevChiSq,  */
00064 /*              Double_t &a1, Double_t &a2, Double_t &a3,  */
00065 /*              Double_t &a4, Int_t unSetPlaneHyp, */
00066 /*              Int_t direction, Int_t leverArm, Float_t offset); */
00067 /*    void FindWinCosmicSolution(DmxPlaneItr &validPlaneItr, DmxStatus *status,  */
00068 /*                               Double_t &a1, Double_t &a2, Double_t &a3,  */
00069 /*                               Double_t &a4, Double_t &chiSq, Float_t offset); */
00070 /*    void FindStraightLineFit(DmxPlaneItr &planeItr, Double_t &prevChiSq,  */
00071 /*                          Double_t &a, Double_t &b, Int_t* hypotheses, */
00072 /*                          Int_t direction, Int_t leverArm, Int_t firstPlane,  */
00073 /*                          Int_t lastPlane); */
00074 /*    void FindStraightLineFit(DmxPlaneItr &planeItr, Double_t &prevChiSq,  */
00075 /*                          Double_t &a, Double_t &b, Int_t unSetPlaneHyp, */
00076 /*                          Int_t direction, Int_t leverArm, Int_t firstPlane,  */
00077 /*                          Int_t lastPlane); */
00078 /*    Bool_t FindPlanesToDropFromFit(DmxPlaneItr &planeItr, Double_t a, Double_t b, */
00079 /*                                Int_t direction, Int_t leverArm, Int_t firstPlane,  */
00080 /*                                Int_t lastPlane); */
00081 /*    void FindCosmicSolution(DmxPlaneItr &planeItr, DmxPlaneItr &validPlaneItr, */
00082 /*                         DmxStatus *status, Double_t &a, Double_t &b, */
00083 /*                         Double_t &chiSq, Int_t firstPlane, Int_t lastPlane); */
00084 /*    void FindWindowCosmicSolution(DmxPlaneItr &validPlaneItr, DmxStatus *status,  */
00085 /*                               Double_t &a, Double_t &b, Double_t &chiSq,  */
00086 /*                               Int_t firstPlane, Int_t lastPlane); */
00087    
00088    ClassDef(AlgDeMuxCosmics,1)                      // DeMux Comsics Algorithm Class
00089 
00090 };
00091 
00092 #endif                                                  // ALGDEMUXCOSMICS_H
00093 
00094 
00095 
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 

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