00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __VETO_RECON_H
00024 #define __VETO_RECON_H 1
00025
00026 #include "reconstruction/Recon.h"
00027
00028 #include "data/IVetoData.h"
00029
00030 class CalRecon;
00031 class Ray;
00032 class ReconVistor;
00033 class TrackerRecon;
00034 class IVetoData;
00035
00036 class VetoRecon : public Recon
00037 {
00038 public:
00039 VetoRecon (CalRecon* cal, TrackerRecon* trk);
00040
00041 void getParameters ();
00042
00043 void accept (ReconVisitor& rv);
00044
00045 void reconstruct (const IVetoData* v);
00046
00047 void clear ();
00048
00049 void draw (gui::DisplayRep& v);
00050
00051 float vetoDOCAFor (const Ray& t, double &top, double &s1, double &s2, double &s3);
00052
00053
00054
00055 protected:
00056
00057
00058 private:
00059
00060 void TriggeredTowers(IVetoData::Id tile_id, int *trkKeep);
00061
00062
00063
00064
00065 LbldData::iterator i_vto_Sys, i_vto_Energy, i_vto_Count;
00066 LbldData::iterator i_vto_vkeep, i_vto_TkrKeep, i_vto_DOCA;
00067 LbldData::iterator i_vto_TKR_E;
00068 LbldData::iterator i_vto_DOCA_TOP, i_vto_DOCA_S1, i_vto_DOCA_S2, i_vto_DOCA_S3;
00069
00070 static double threshold_energy, tile_width_x, tile_width_y;
00071 static const unsigned int firstModId;
00072 static unsigned int lastModId;
00073
00074
00075
00076 const IVetoData *vetoData;
00077 CalRecon *cal;
00078 TrackerRecon *track;
00079
00080
00081 IVetoData::Tile m_hit_tile;
00082 float m_DOCA;
00083 };
00084
00085 #endif