00001 #ifndef ANP_FILLBASIC_H
00002 #define ANP_FILLBASIC_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "PhysicsNtuple/Basic.h"
00012 #include "PhysicsNtuple/Vertex.h"
00013
00014 class NtpSREvent;
00015 class NtpSRPlane;
00016 class NtpSRShower;
00017 class NtpSRTrack;
00018 class NtpSRStrip;
00019 class NtpSRStripPulseHeight;
00020 class NtpSRVertex;
00021 class NtpStRecord;
00022 class Registry;
00023 class TObject;
00024
00025 namespace Anp
00026 {
00027 class FillBasic
00028 {
00029
00030 public:
00031
00032 FillBasic();
00033 ~FillBasic();
00034
00035 void Config(const Registry ®);
00036
00037 bool Fill(const NtpStRecord &ntprec, const NtpSREvent &record);
00038 bool Fill(const NtpStRecord &ntprec, const NtpSRShower &record);
00039 bool Fill(const NtpStRecord &ntprec, const NtpSRTrack &record);
00040
00041 const Basic GetBasic() const;
00042 const Vertex GetBegVtx() const;
00043 const Vertex GetEndVtx() const;
00044
00045 private:
00046
00047 const Vertex Get(const NtpSRVertex &vtx, bool isfid_) const;
00048
00049 bool Check(const Basic &basic, const NtpSRPlane &plane) const;
00050
00051 bool Fill(Basic &basic, const NtpSRStripPulseHeight &ph) const;
00052
00053 const Basic Get(const NtpStRecord &record, const int *index_array, int nstrip) const;
00054
00055 private:
00056
00057 bool fCheck;
00058 double fTrackZOffset;
00059
00060 Basic fBasic;
00061 Vertex fBegVtx;
00062 Vertex fEndVtx;
00063 };
00064
00065 NtpSRStrip* GetSRStrip(const NtpStRecord &ntpr, int index);
00066
00067 void PrintStrips(const NtpStRecord &record, const int *index_array, int nstrip);
00068
00069
00070
00071
00072 inline const Basic FillBasic::GetBasic() const { return fBasic; }
00073 inline const Vertex FillBasic::GetBegVtx() const { return fBegVtx; }
00074 inline const Vertex FillBasic::GetEndVtx() const { return fEndVtx; }
00075 }
00076
00077 #endif