00001
00002
00003
00004
00005
00006
00008 #ifndef ANTPINFOOBJECTFILLERNC_H
00009 #define ANTPINFOOBJECTFILLERNC_H
00010
00011 #include "TObjArray.h"
00012 #include "TClonesArray.h"
00013 #include "AnalysisNtuples/Module/ANtpInfoObjectFillerBeam.h"
00014 #include "Conventions/Detector.h"
00015 #include "PhysicsNtuple/Store/Interface.h"
00016
00017 class VldContext;
00018 class VldTimeStamp;
00019 class NtpMCRecord;
00020 class NtpSRRecord;
00021 class NtpStRecord;
00022 class ANtpShowerInfoNC;
00023 class ANtpTrackInfoNC;
00024 class ANtpEventInfoNC;
00025 class ANtpRecoNtpManipulator;
00026
00027 class ANtpInfoObjectFillerNC : public ANtpInfoObjectFillerBeam
00028 {
00029
00030 public:
00031 ANtpInfoObjectFillerNC();
00032 ANtpInfoObjectFillerNC(Detector::Detector_t detector);
00033 virtual ~ANtpInfoObjectFillerNC();
00034
00035 bool FillInformation(int event,
00036 ANtpRecoNtpManipulator *ntpManipulator,
00037 ANtpEventInfoNC *eventInfo,
00038 ANtpTrackInfoNC *trackInfo,
00039 ANtpShowerInfoNC *showerInfo,
00040 ANtpTruthInfoBeam *truthInfo);
00041 void SetDetector(Detector::Detector_t detector);
00042 void SetClusterArray(const TClonesArray *clusters);
00043 void InitializekNN(ANtpRecoNtpManipulator *ntpManipulator);
00044
00045
00046
00047 private:
00048
00049 void FillEventInformation(ANtpRecoNtpManipulator *ntpManipulator,
00050 NtpSREvent *ntpEvent,
00051 ANtpEventInfoNC *eventInfo);
00052 void FillTrackInformation(ANtpRecoNtpManipulator *ntpManipulator,
00053 NtpSRTrack *ntpTrack,
00054 NtpSREvent *ntpEvent,
00055 ANtpTrackInfoNC *trackInfo,
00056 ANtpEventInfoNC *eventInfo);
00057 void FillShowerInformation(NtpSRShower *ntpShower,
00058 ANtpShowerInfoNC *showerInfo,
00059 ANtpEventInfoNC *eventInfo);
00060 void FillCrossOverInformation(NtpSRTrack *ntpTrack,
00061 NtpSRShower *ntpShower,
00062 NtpSREvent *ntpEvent,
00063 ANtpRecoNtpManipulator *ntpManipulator,
00064 ANtpTrackInfoNC *trackInfo,
00065 ANtpShowerInfoNC *showerInfo,
00066 ANtpEventInfoNC *eventInfo);
00067 void FillMCInformation(NtpMCTruth *ntpMCTruth,
00068 TClonesArray *stdHepArray,
00069 ANtpTruthInfoBeam *truthInfo);
00070 void FillStripToPixelMaps();
00071 void ResetXTalkArrays();
00072 void FillPlanePixelSignalArrays(NtpSREvent *ntpEvent);
00073 Float_t FindNearestNeighborPixelSignal(Int_t plane,
00074 Int_t pixel,
00075 Int_t pmt,
00076 Float_t planePixelSignal[][64][2]);
00077 void FindXTalkStrips(NtpSREvent *ntpEvent);
00078 void FindEarlyActivityWeight(NtpSREvent *ntpEvent,
00079 ANtpEventInfoNC *eventInfo);
00080
00082 void GetEvtVtxWithFixup(ANtpRecoNtpManipulator* ntpManipulator,
00083 int& vtxPlane, float& vtxZ) const;
00084
00086 void GetStripEventTime(const NtpSREvent* ntpEvent,
00087 int vtxPlane, float vtxZ,
00088 double& evtTime,
00089 double& ToFCorrectedEvtTime) const;
00090 void FillEventTimingAndActivityInformation(ANtpRecoNtpManipulator *ntpManipulator,
00091 int event,
00092 ANtpEventInfoNC *eventInfo);
00093
00094
00095
00096 Int_t fPlaneToPMTMapWest[486];
00097 Int_t fPlaneToPMTMapEast[486];
00098 Int_t fStripToPixelMapWest[192];
00099 Int_t fStripToPixelMapEast[192];
00100 Int_t fStripToPixelMapNearU1[64];
00101 Int_t fStripToPixelMapNearV1[64];
00102 Int_t fStripToPixelMapNearU2[64];
00103 Int_t fStripToPixelMapNearV2[64];
00104 Int_t fStripToPixelMapNearU3[64];
00105 Int_t fStripToPixelMapNearV3[64];
00106 Float_t fPlanePixelEastSignal[486][64][2];
00107 Float_t fPlanePixelWestSignal[486][64][2];
00108 Int_t fStripIsXTalkWest[486][192];
00109 Int_t fStripIsXTalkEast[486][192];
00110 Int_t fPlaneCoverage[486];
00111
00112 Anp::Interface *fAnpInterface;
00113
00114 const TClonesArray *fClusterArray;
00115
00116 bool fkNNSet;
00117
00118
00119 int fVHSPlanes;
00120 int fVHSStrips;
00121 std::vector<double> fAvgCCe;
00122 std::vector<double> fAvgCCmu;
00123 std::vector<double> fAvgCCtau;
00124 std::vector<double> fAvgNC;
00125 std::vector<double> fPCCe;
00126 std::vector<double> fPCCmu;
00127 std::vector<double> fPCCtau;
00128 std::vector<double> fPNC;
00129 std::vector<double> fVarCCe;
00130 std::vector<double> fVarCCmu;
00131 std::vector<double> fVarCCtau;
00132 std::vector<double> fVarNC;
00133
00134 ClassDef(ANtpInfoObjectFillerNC, 6)
00135 };
00136
00137 #endif // ANTPINFOOBECTFILLERNC_H
00138
00139