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

AlgAltDeMux.h

Go to the documentation of this file.
00001 
00002 //
00003 // AlgAltDeMux
00004 //
00005 // An Algorithm class for the Alternative DeMuxing Algoriths 
00006 // developed in Cambridge. This algorith replaces AlgAltDeMuxCosmics.
00007 // It is valid for demultiplexing all far detector event classes
00008 // (beam, atmospherics, cosmics and multiple muons)
00009 //
00010 // Author:  M. Thomson March 2005
00012 
00013 #ifndef ALG_ALTDEMUX_H
00014 #define ALG_ALTDEMUX_H
00015 
00016 #include "Algorithm/AlgBase.h"
00017 #include "Plex/PlexSEIdAltL.h"
00018 #include "UgliGeometry/UgliGeomHandle.h"
00019 #include "UgliGeometry/UgliStripHandle.h"
00020 #include "AltDeMuxPatternMaster.h"
00021 #include "AlgAltDeMuxBase.h"
00022 #include "AltDeMuxStructures.h"
00023 
00024 class CandDeMuxDigitHandle;
00025 class CandDigitListHandle;
00026 class TObjectItr;
00027 
00028 class AlgAltDeMux : public AlgAltDeMuxBase
00029 {
00030 
00031 public:
00032 
00033 // Constructors and destructors
00034    AlgAltDeMux();
00035    virtual ~AlgAltDeMux();
00036 
00037 // State testing methods
00038    void Trace(const char *c) const;
00039 
00040 // State changing methods
00041    void RunAlg(AlgConfig &acd, CandHandle &ch, CandContext &cx);
00042 
00043 protected:
00044    void DeMuxPreparation(CandDeMuxDigitListHandle& cdlh);
00045    void DeMuxGoldenHits(CandDeMuxDigitListHandle& cdlh);
00046    void DeMuxAsMultipleMuon(CandDeMuxDigitListHandle& cdlh);
00047    void DeMuxAsStraightSingleMuon(CandDeMuxDigitListHandle& cdlh);
00048    void DeMuxAsUnknownEventType(CandDeMuxDigitListHandle& cdlh);
00049    void ValidateThroughGoingMuon(CandDeMuxDigitListHandle& cdlh);
00050    void ValidateContainedCandidate(CandDeMuxDigitListHandle& cdlh);
00051    void DeMuxTidyUp(CandDeMuxDigitListHandle& cdlh);
00052 
00053 
00054 private:
00055    bool showTiming;
00056    Float_t fClearArrayTime;
00057    Float_t fMakePixelMapTime;
00058    Float_t fDisplayPixelMapTime;
00059    Float_t fMakeAltListMapTime;
00060    Float_t fStripNoiseTime;
00061    Float_t fStripCrossTalkTime;
00062    Float_t fStripCrossTalkSinglesTime;
00063    Float_t fFillLowestHighestTime;
00064    Float_t fGetFibreLengthsTime;  
00065    Float_t fMakeTimingMask1Time;
00066    Float_t fMakeTimingMask2Time;
00067    Float_t fDeMuxPass0Time;
00068    Float_t fDeMuxPass1Time;
00069    Float_t fHoughTime;
00070    Float_t fFitsTime;
00071    Float_t fNewFitsTime;
00072    Float_t fValidateTime;
00073    Float_t fReMakeMaskTime;
00074    Float_t fEventIDTime;
00075    Float_t fReBuildXTalkTime;
00076    Float_t fThroughMuonTime;
00077    Float_t fDeMuxPass2Time;
00078    Float_t fDeMuxPass3Time;
00079    Float_t fDeMuxPass4Time;
00080    Float_t fAddBackCrossTalkTime;
00081    Float_t fDeMuxPass5Time;
00082    Float_t fDeMuxPass6Time;
00083    Float_t fCleanMultipleTime;
00084    Float_t fContainedTime;
00085    Float_t fTotalTime;
00086    Float_t fReTagCrossTalkTime;
00087    Float_t fDeMuxPreparationTime;
00088    Float_t fDeMuxGoldenHitsTime;
00089    Float_t fDeMuxAsMultipleMuonTime;
00090    Float_t fDeMuxAsStraightSingleMuonTime;
00091    Float_t fDeMuxAsUnknownEventTypeTime;
00092    Float_t fValidateThroughGoingMuonTime;
00093    Float_t fValidateContainedCandidateTime;
00094    Float_t fDeMuxTidyUpTime;
00095    Float_t fSearchAndDestroyTime;
00096 
00097    Float_t fNEvents;
00098 
00099 ClassDef(AlgAltDeMux,1)                      // DeMux Golden Algorithm Class
00100 
00101 };
00102 
00103 #endif // ALG_ALTDEMUX_H
00104 
00105 

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