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

DmxDeMuxCosmicsModule.h

Go to the documentation of this file.
00001 
00002 // $Id: DmxDeMuxCosmicsModule.h,v 1.55 2003/03/21 17:15:56 rhatcher Exp $
00003 //
00004 // A module used for demultiplexing cosmics ray events in the far detector
00005 //
00006 // Author:  B. Rebel 6/2001
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;  //type of data used - real==0 or monte carlo==1
00055   Int_t fDeltaStrips;  //number of strips a digit can be off of a track
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; //0 = east, 1 = west
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; //name of root file containing histograms from Ana()
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;  //object containing info about the event
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; // type of track fitter to use
00149   bool fUnsetDigitCheck;
00150   Int_t fValidPlanesFailure;
00151   Int_t fVertexPlane;
00152   Float_t fVertexPlaneZ;
00153   bool fWriteHistos;
00154   Double_t fXTalkSignalRatio; //xtalk signal ratio
00155   bool fUseStrayPlaneCheck;
00156   Int_t fStrayPlanesLimit;
00157   
00158   TFile *fDeMuxFile;
00159 
00160   //TTrees to hold test information
00161   TTree *fDeMuxTree;  //holds all information that only occurs once per event
00162                      //ie fraction of correctly demuxed charge, event length, total signal
00163   TTree *fDeMuxedDigitTree; //tree to hold info about digit - crate, plane, demuxed strip, charge
00164   TTree *fDmxPlaneTree; //tree to hold info about digit - crate, plane, demuxed strip, charge
00165   TTree *fSingleModuleTree;  //tree to hold information about digits from the Single Module test
00166   TTree *fTrackDigitsTree; //tree to hold info about digits from DigitsAlongTrack test
00167   TTree *fUnusedDigitsTree; //tree to hold info about digits from UnusedDigits test
00168   TTree *fMCDeMuxTree; //tree to hold mc demuxing info
00169   TTree *fMCDeMuxDigitTree; //tree to hold mc demuxed digit info
00170   TFolder *fTFolder;
00171 
00172 ClassDef(DmxDeMuxCosmicsModule, 0) //DmxDeMuxCosmicsModule
00173 };
00174 
00175 #endif // DMXDEMUXCOSMICSMODULE_H
00176 

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