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

ANtpInfoObjectFillerNC.h

Go to the documentation of this file.
00001 
00002 // $Id: ANtpInfoObjectFillerNC.h,v 1.18 2009/09/12 14:56:20 tinti Exp $
00003 //
00004 // A class to easily get at the SR ntuple information
00005 //
00006 // B. Rebel 12/2005
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 /*   void InitializeVHSTraining(const int numPlanes=20, */
00045 /*                           const int numStrips=20); */
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 /*   void FillVHSEvtInfo(ANtpRecoNtpManipulator* ntpManipulator, */
00094 /*                    ANtpEventInfoNC*        eventInfo); */
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; // pointer to cluster array in NtpSt
00115   
00116   bool fkNNSet;  //flag for whether to set the kNN registry or not
00117 
00118   // Local copy of training vectors etc. for Kregg's image recognition
00119   int                 fVHSPlanes;    // #planes/window
00120   int                 fVHSStrips;    // #strips/window
00121   std::vector<double> fAvgCCe;       // Avg CCe   images
00122   std::vector<double> fAvgCCmu;      // Avg CCmu  images
00123   std::vector<double> fAvgCCtau;     // Avg CCtau images
00124   std::vector<double> fAvgNC;        // Avg NC    images
00125   std::vector<double> fPCCe;         // Hit probs for CCe   events
00126   std::vector<double> fPCCmu;        // Hit probs for CCmu  events
00127   std::vector<double> fPCCtau;       // Hit probs for CCtau events
00128   std::vector<double> fPNC;          // Hit probs for NC    events
00129   std::vector<double> fVarCCe;       // Strip variance CCe
00130   std::vector<double> fVarCCmu;      // Strip variance CCmu
00131   std::vector<double> fVarCCtau;     // Strip variance CCtau
00132   std::vector<double> fVarNC;        // Strip variance NC
00133 
00134   ClassDef(ANtpInfoObjectFillerNC, 6) //ANtpInfoObjectFillerNC
00135 };
00136 
00137 #endif // ANTPINFOOBECTFILLERNC_H
00138 
00139 

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