00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef ALGEVENTSRLIST_H
00013 #define ALGEVENTSRLIST_H
00014
00015 #include "Algorithm/AlgBase.h"
00016 #include "RecoBase/CandEventHandle.h"
00017
00018 class VldContext;
00019 class CandSliceHandle;
00020 class CandTrackHandle;
00021 class CandShowerHandleItr;
00022 class CandTrackHandleItr;
00023 class CandRecoHandle;
00024 class CandShowerListHandle;
00025 class CandClusterListHandle;
00026 class TObjArray;
00027 class CandSliceHandleItr;
00028 class CandEventHandleItr;
00029 class CandEventHandle;
00030
00031 class AlgEventSRList : public AlgBase
00032 {
00033
00034 public:
00035 AlgEventSRList();
00036 virtual ~AlgEventSRList();
00037 virtual void RunAlg(AlgConfig &ac, CandHandle &ch, CandContext &cx);
00038 void BuildEventFromUnassoc(AlgConfig &ac, CandHandle &ch,CandContext &cx, CandSliceHandle * slice);
00039 virtual void Trace(const char *c) const;
00040 void SetPrimaryShowers(CandHandle &ch, AlgConfig &ac);
00041 void ReConstructShowers(AlgConfig & ac, CandHandle &ch, CandContext &cx);
00042 void RemoveTracksinShowers(AlgConfig &ac,TObjArray *recolist);
00043 void FillRecoList(CandSliceHandle *, CandShowerHandleItr *, CandTrackHandleItr*, TObjArray &);
00044 Bool_t MatchOtherTracksInEvent(AlgConfig &ac, const VldContext * vldcptr, CandTrackHandle *, TObjArray *);
00045 void AddObjectToEvent(CandRecoHandle * reco, TObjArray *, TObjArray *, Bool_t );
00046 void MergeShowers(CandContext &cxx, TObjArray & eventlist,AlgConfig &ac,
00047 CandSliceHandle * slice,
00048 CandClusterListHandle * clusterlist,
00049 CandShowerListHandle * showerlist);
00050 void AddStripToEvent(CandEventHandle * ev,
00051 CandShowerHandle * shw,
00052 CandClusterListHandle * clslist,
00053 CandStripHandle * closeststrip);
00054 void CreatePrimaryShower(AlgConfig & ac, CandContext & cxx,
00055 CandEventHandle * closestevent,
00056 CandShowerListHandle * showerlist,
00057 CandClusterListHandle * clusterlist,
00058 CandStripHandle * closeststrip);
00059 void FindUnassociated(AlgConfig& ac, CandSliceHandleItr & sliceItr, CandEventHandleItr *, TObjArray & unassociated);
00060 void FindUnassociated(AlgConfig& ac, CandSliceHandleItr & sliceItr, CandShowerHandleItr *, CandTrackHandleItr*, TObjArray & unassociated);
00061
00062 void ReFillDist2Map(AlgConfig & ac, CandStripHandle * closeststrip, CandEventHandle * closestevent, TObjArray & unassociated, std::vector<std::map<const CandEventHandle*, Double_t> > & dist2map);
00063 void FillDist2Map(AlgConfig & ac, TObjArray & unassociated, CandHandle & ch, std::vector<std::map<const CandEventHandle*, Double_t> > & dist2map);
00064
00065 ClassDef(AlgEventSRList,4)
00066 };
00067
00068 #endif // ALGEVENTSRLIST_H