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