Go to the documentation of this file.00001
00002
00016
00017
00018 #ifndef DT_BTI_CARD_H
00019 #define DT_BTI_CARD_H
00020
00021
00022
00023
00024 class DTBtiChip;
00025 class DTBtiTrig;
00026 class DTTrigGeom;
00027 class DTTTrigBaseSync;
00028
00029
00030
00031
00032 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
00033 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h"
00034 #include "DataFormats/MuonDetId/interface/DTBtiId.h"
00035 #include "L1Trigger/DTBti/interface/DTBtiTrigData.h"
00036 #include "L1Trigger/DTUtilities/interface/DTCache.h"
00037 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigBti.h"
00038 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigManager.h"
00039
00040
00041
00042
00043
00044 #include <vector>
00045 #include <map>
00046
00047 namespace edm {class ParameterSet; class Event; class EventSetup;}
00048
00049
00050
00051
00052
00053 typedef std::map< int,DTBtiChip*,std::less<int> > BTIContainer;
00054 typedef BTIContainer::const_iterator BTI_const_iter;
00055 typedef BTIContainer::iterator BTI_iter;
00056
00057 typedef std::map<DTBtiId,DTConfigBti> ConfBtiMap;
00058
00059 typedef DTCache<DTBtiTrigData,std::vector<DTBtiTrigData> > BTICache;
00060
00061 class DTBtiCard : public BTICache, public DTGeomSupplier {
00062
00063 public:
00064
00066
00067 DTBtiCard(DTTrigGeom *, DTTTrigBaseSync *);
00068
00070 ~DTBtiCard();
00071
00073 void clearCache();
00074
00076 void setConfig(const DTConfigManager *conf);
00077
00079 inline bool debug() const {return _debug;}
00080
00082 DTBtiChip* getBTI(int sl, int n) const;
00083
00085 DTBtiChip* getBTI(const DTBtiId& btiid) const {
00086 return getBTI(btiid.superlayer(),btiid.bti());
00087 }
00088
00090 LocalPoint localPosition(const DTTrigData*) const;
00092 LocalVector localDirection(const DTTrigData*) const;
00093
00095 std::vector<DTBtiChip*> btiList(int);
00096
00101 DTBtiTrig* storeTrigger(DTBtiTrigData);
00102
00103
00104 virtual void reconstruct(const DTDigiCollection dtDigis) { clearCache();loadBTI(dtDigis); runBTI(); }
00105
00107 DTConfigBti* config_bti(DTBtiId& btiid) const;
00108
00110 inline bool useAcceptParamFlag() { return _flag_acc; }
00111
00112 private:
00113
00115 void loadBTI(const DTDigiCollection dtDigis);
00116
00118 void runBTI();
00119
00121 DTBtiChip* activeGetBTI(int sl, int n);
00122
00124 DTBtiChip* activeGetBTI(const DTBtiId& btiid) {
00125 return activeGetBTI(btiid.superlayer(),btiid.bti());
00126 }
00127
00129 void localClear();
00130
00131 private:
00132
00133 BTIContainer _btimap[3];
00134 ConfBtiMap _conf_bti_map;
00135
00136 std::vector<DTDigi*> _digis;
00137
00138 bool _debug;
00139 DTTTrigBaseSync *_digi_sync;
00140 int _finedelay;
00141 int _MCdelay;
00142
00143 bool _flag_acc;
00144 };
00145
00146 #endif