00001
00002
00003
00004
00005
00006
00008 #ifndef DMXDEMUXMODULE_H
00009 #define DMXDEMUXMODULE_H
00010
00011 #include "TROOT.h"
00012 #include "TObject.h"
00013 #include "DeMux/DmxStatus.h"
00014 #include "Registry/Registry.h"
00015 #include "TTree.h"
00016 #include "TFile.h"
00017 #include "TFolder.h"
00018
00019 #ifndef JOBCMODULE_H
00020 #include "JobControl/JobCModule.h"
00021 #endif
00022
00023 class MomNavigator;
00024 class JobCommand;
00025 class TObjectItr;
00026 class CandDeMuxDigitHandleItr;
00027
00028
00029
00030 class DmxDeMuxModule : public JobCModule, public TObject
00031 {
00032
00033 public:
00034 DmxDeMuxModule();
00035 ~DmxDeMuxModule();
00036
00037 void BeginJob();
00038 JobCResult Reco(MomNavigator *mom);
00039 JobCResult Ana(const MomNavigator *mom);
00040 void HandleCommand(JobCommand *command);
00041 const Registry& DefaultConfig() const;
00042 void Config(const Registry& r);
00043 void Help();
00044 void EndJob();
00045
00046
00047 private:
00048
00049 Float_t fAverageTimingOffset;
00050 Int_t fCrate;
00051 Int_t fDataType;
00052 Int_t fDeltaStrips;
00053 Int_t fDeMuxedStrip;
00054 Int_t fDeMuxedStripW;
00055 Float_t fDigitCharge;
00056 Int_t fDigitDeMuxedCorrectly;
00057 Int_t fDigitsInEvent;
00058 Int_t fDigitSide;
00059 Int_t fDirection;
00060 bool fDontUseCandDigitMasks;
00061 Int_t fDoubleEnded;
00062 Int_t fEndPlane;
00063 Float_t fEventCharge;
00064 Int_t fEventDeMuxed;
00065 bool fEventLength;
00066 Int_t fEventNumber;
00067 bool fFilter;
00068 Float_t fFractionChargeNearTrack;
00069 const Char_t *fHistoFileName;
00070 Float_t fHoughSlope;
00071 Float_t fHoughIntercept;
00072 Float_t fHoughPeak;
00073 Float_t fHypothesisCoG;
00074 Float_t fHypothesisCoGTPos;
00075 Float_t fHypothesisMatedSignalRatio;
00076 Int_t fHypothesisNumber;
00077 Int_t fHypothesisRank;
00078 Float_t fHypothesisStat;
00079 Float_t fHypothesisTieBreaker;
00080 Int_t fHypothesisValid;
00081 bool fMakeTrees;
00082 Int_t fMated;
00083 Double_t fMatedSignalForValid;
00084 Float_t fMCDigitCharge;
00085 Int_t fMCDigitSide;
00086 Float_t fMCChargeCorrect;
00087 Float_t fMCChargeCorrect1Hyp;
00088 Float_t fMCCoG;
00089 Float_t fMCCoGTPos;
00090 Double_t fMCInitialSlopeU;
00091 Double_t fMCInitialSlopeV;
00092 Float_t fMCTotalCharge;
00093 Float_t fMCTotalCharge1Hyp;
00094 Float_t fMCStripsCorrect;
00095 Int_t fMCVertexPlane;
00096 Int_t fMCEndPlane;
00097 Int_t fMultiple;
00098 Int_t fMuonStartPlane;
00099 Int_t fNonPhysicalFailure;
00100 Int_t fNonPhysicalPlanes;
00101 Int_t fNoVertexFailure;
00102 Int_t fNumberOfPlanesInEvent;
00103 Int_t fOneSidedUPlanes;
00104 Int_t fOneSidedVPlanes;
00105 Int_t fPlane;
00106 Float_t fPlaneZ;
00107 Float_t fPlaneDeMuxedCoG;
00108 Int_t fPlaneStray;
00109 Int_t fPlanesInWindow;
00110 Int_t fPlaneType;
00111 Float_t fSignalFractionLimit;
00112 bool fSingleModuleDeMux;
00113 Float_t fSingleModuleCharge;
00114 Float_t fSingleModuleCorrectCharge;
00115 Float_t fSingleModuleDigits;
00116 Float_t fSingleModuleCorrectDigits;
00117 DmxStatus fStatus;
00118 Int_t fStrayDeltaStripLimit;
00119 Int_t fStrip0;
00120 Int_t fStrip1;
00121 Int_t fStrip2;
00122 Int_t fStrip3;
00123 Int_t fStrip4;
00124 Int_t fStrip5;
00125 Int_t fStrip6;
00126 Int_t fStrip7;
00127 Double_t fTime;
00128 Int_t fTruthStripE;
00129 Int_t fTruthStripW;
00130 Double_t fUSlope;
00131 Double_t fUIntercept;
00132 Double_t fUSlopeRMS;
00133 Int_t fUStrayPlanes;
00134 Int_t fUValidPlanes;
00135 Int_t fUOverlap;
00136 Double_t fUInterceptRMS;
00137 Double_t fUChiSq;
00138 Double_t fVSlope;
00139 Double_t fVIntercept;
00140 Double_t fVSlopeRMS;
00141 Int_t fVStrayPlanes;
00142 Int_t fVValidPlanes;
00143 Int_t fVOverlap;
00144 Double_t fVInterceptRMS;
00145 Double_t fVChiSq;
00146 Int_t fXTalkDigit;
00147 TString fTrackFitter;
00148 bool fUnsetDigitCheck;
00149 Int_t fValidPlanesFailure;
00150 Int_t fVertexPlane;
00151 Float_t fVertexPlaneZ;
00152 bool fWriteHistos;
00153 Double_t fXTalkSignalRatio;
00154 bool fUseStrayPlaneCheck;
00155 Int_t fStrayPlanesLimit;
00156 Float_t fUMuonMatedFraction;
00157 Float_t fVMuonMatedFraction;
00158 Float_t fUShowerMatedFraction;
00159 Float_t fVShowerMatedFraction;
00160
00161 TFile *fDeMuxFile;
00162
00163
00164 TTree *fDeMuxTree;
00165
00166 TTree *fDeMuxedDigitTree;
00167 TTree *fDmxPlaneTree;
00168 TTree *fTrackDigitsTree;
00169 TTree *fUnusedDigitsTree;
00170 TTree *fMCDeMuxTree;
00171 TTree *fMCDeMuxDigitTree;
00172 TFolder *fTFolder;
00173
00174 ClassDef(DmxDeMuxModule, 0)
00175 };
00176
00177 #endif // DMXDEMUXMODULE_H
00178
00179