00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef ALGEVENTSSLIST_H
00013 #define ALGEVENTSSLIST_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 CandSubShowerSRListHandle;
00026 class TObjArray;
00027 class CandSliceHandleItr;
00028 class CandEventHandleItr;
00029 class CandEventHandle;
00030
00031 class AlgEventSSList : public AlgBase
00032 {
00033
00034 public:
00035 AlgEventSSList();
00036 virtual ~AlgEventSSList();
00037 virtual void RunAlg(AlgConfig &ac, CandHandle &ch, CandContext &cx);
00038 void BuildEventFromUnassoc(AlgConfig &ac, CandHandle &ch,
00039 CandContext &cx, CandSliceHandle * slice);
00040 virtual void Trace(const char *c) const;
00041 void SetPrimaryShowers(CandHandle &ch, AlgConfig &ac);
00042 void ReConstructShowers(AlgConfig & ac, CandHandle &ch,
00043 CandContext &cx);
00044 void FillRecoList(CandSliceHandle *, CandShowerHandleItr *,
00045 CandTrackHandleItr*, TObjArray &);
00046 void AddObjectToEvent(CandRecoHandle * reco, TObjArray *, TObjArray *, Bool_t );
00047 void AddStripToEvent(CandEventHandle * ev,
00048 CandShowerHandle * shw,
00049 CandSubShowerSRListHandle * subshwlist,
00050 CandStripHandle * closeststrip);
00051 void CreatePrimaryShower(AlgConfig & ac, CandContext & cxx,
00052 CandEventHandle * closestevent,
00053 CandShowerListHandle * showerlist,
00054 CandSubShowerSRListHandle * subshowerlist,
00055 CandStripHandle * closeststrip);
00056 void FindUnassociated(AlgConfig& ac, CandSliceHandleItr & sliceItr, CandEventHandleItr *,
00057 TObjArray & unassociated);
00058 void ReFillDist2Map(AlgConfig & ac, CandStripHandle * closeststrip,
00059 CandEventHandle * closestevent, TObjArray & unassociated,
00060 std::vector<std::map<const CandEventHandle*, Double_t> > & dist2map);
00061 void FillDist2Map(AlgConfig & ac, TObjArray & unassociated,
00062 CandHandle & ch, std::vector<std::map<const CandEventHandle*,
00063 Double_t> > & dist2map);
00064 ClassDef(AlgEventSSList,1)
00065
00066 };
00067
00068 #endif // ALGEVENTSSLIST_H