00001 00002 // $Id: AltDeMuxModule.h,v 1.2 2003/12/10 15:53:29 thomson Exp $ 00003 // 00004 // An alternative multi-purpose demultiplexing algorithm module for 00005 // demultiplexing events in the far detector 00006 // 00007 // Author: M. Thosmson April 2003 00009 #ifndef ALTDEMUXMODULE_H 00010 #define ALTDEMUXMODULE_H 00011 00012 #include "TObject.h" 00013 #include "TTree.h" 00014 #include "TFile.h" 00015 #include "TCanvas.h" 00016 #include "TH2.h" 00017 #include "TH1.h" 00018 #include "TPolyLine.h" 00019 #include "AltDeMuxDisplay.h" 00020 #include "UgliGeometry/UgliStripHandle.h" 00021 #include "Registry/Registry.h" 00022 00023 #ifndef JOBCMODULE_H 00024 #include "JobControl/JobCModule.h" 00025 #endif 00026 00027 class MomNavigator; 00028 class JobCommand; 00029 class TObjectItr; 00030 class TFolder; 00031 class CandDeMuxDigitHandleItr; 00032 class AltDeMuxCalc; 00033 00034 //...................................................................... 00035 00036 class AltDeMuxModule : public JobCModule, public TObject 00037 { 00038 00039 public: 00040 AltDeMuxModule(); 00041 ~AltDeMuxModule(); 00042 00043 void BeginJob(); 00044 JobCResult Reco(MomNavigator *mom); 00045 JobCResult Ana(const MomNavigator *mom); 00046 void HandleCommand(JobCommand *command); 00047 const Registry& DefaultConfig() const; 00048 void Config(const Registry& r); 00049 void EndJob(); 00050 void Help(); 00051 void BookHistos(); 00052 //void TimeAnalysis(); 00053 void GetFibreLengths(); 00054 bool SelectCleanMuons(); 00055 // void MakeCandDeMuxDigitList(MomNavigator *mom); 00056 00057 private: 00058 00059 Int_t fDraw; 00060 bool fDiagnosticPlots; 00061 const Char_t *fDeMuxAlg; //name of algorithm to be used for demuxing 00062 const Char_t *fHistoFileName; //name of root file containing histograms from Ana() 00063 00064 TCanvas* fCanvasAltDeMux; 00065 TH2F* fUviewAltDeMux; 00066 TH2F* fVviewAltDeMux; 00067 AltDeMuxDisplay* fAltDeMuxDisplay; 00068 std::vector<PlexSEIdAltL*>fPlanesAltLists[MAX_NUMBER_OF_PLANES][2]; 00069 std::vector<DeMuxedPair>fDeMuxedPairs; 00070 AltDeMuxCalc* pCalculator; 00071 00072 UgliGeomHandle* pUgh; 00073 00074 // -------------- Constants -------------- 00075 Float_t fClearFibreC; 00076 Float_t fWLSFibreC; 00077 Float_t fScintillatorC; 00078 Float_t fClearFibreN; 00079 Float_t fWLSFibreN; 00080 Float_t fScintillatorN; 00081 Int_t fNumberOfStrips; 00082 00083 TH1F* fUG; // Histogram of VZ View 00084 TH1F* fVG; // Histogram of VZ View 00085 TH1F* fUsdt; // Histogram of VZ View 00086 TH1F* fVsdt; // Histogram of VZ View 00087 TH1F* fUsdtH; // Histogram of VZ View 00088 TH1F* fVsdtH; // Histogram of VZ View 00089 TH1F* fUsdq; // Histogram of VZ View 00090 TH1F* fVsdq; // Histogram of VZ View 00091 TH2F* fVsdqQ; // Histogram of VZ View 00092 TH2F* fVsdqV; // Histogram of VZ View 00093 00094 TH1F* fUsdq1; // Histogram of VZ View 00095 TH1F* fVsdq1; // Histogram of VZ View 00096 TH1F* fUsdq2; // Histogram of VZ View 00097 TH1F* fVsdq2; // Histogram of VZ View 00098 TH1F* fUsdq3; // Histogram of VZ View 00099 TH1F* fVsdq3; // Histogram of VZ View 00100 TH1F* fVsdtc; // Histogram of VZ View 00101 TH1F* fUsdtc; // Histogram of VZ View 00102 TH2F* fUrat; // Histogram of VZ View 00103 TH2F* fVrat; // Histogram of VZ View 00104 TH2F* fUdt; // Histogram of VZ View 00105 TH2F* fVdt; // Histogram of VZ View 00106 TH2F* fUcleardt; // Histogram of VZ View 00107 TH2F* fVcleardt; // Histogram of VZ View 00108 TH2F* fUwlsdt; // Histogram of VZ View 00109 TH2F* fVwlsdt; // Histogram of VZ View 00110 TH2F* fUclearNdt; // Histogram of VZ View 00111 TH2F* fVclearNdt; // Histogram of VZ View 00112 TH2F* fUwlsNdt; // Histogram of VZ View 00113 TH2F* fVwlsNdt; // Histogram of VZ View 00114 TH2F* fUQdl; // Histogram of VZ View 00115 TH2F* fVQdl; // Histogram of VZ View 00116 00117 TH2F* fQ1Q2Good; // Histogram of VZ View 00118 TH2F* fQ1Q2All; // Histogram of VZ View 00119 TH2F* fDStripVsPlaneU; 00120 TH2F* fDStripVsPlaneV; 00121 00122 TPolyLine* fUZFitTSM1; 00123 TPolyLine* fVZFitTSM1; 00124 TPolyLine* fUZFitSSM1; 00125 TPolyLine* fVZFitSSM1; 00126 00127 TPolyLine* fUZFitTSM2; 00128 TPolyLine* fVZFitTSM2; 00129 TPolyLine* fUZFitSSM2; 00130 TPolyLine* fVZFitSSM2; 00131 00132 00133 00134 ClassDef(AltDeMuxModule, 0) //AltDeMuxModule 00135 }; 00136 00137 #endif // ALTDEMUXMODULE_H 00138
1.3.9.1