CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/L1Trigger/DTBti/interface/DTBtiCard.h

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 // Collaborating Class Declarations --
00023 //------------------------------------
00024 class DTBtiChip;
00025 class DTBtiTrig;
00026 class DTTrigGeom;
00027 class DTTTrigBaseSync;
00028 
00029 //----------------------
00030 // Base Class Headers --
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 // C++ Headers --
00043 //---------------
00044 #include <vector>
00045 #include <map>
00046 
00047 namespace edm {class ParameterSet; class Event; class EventSetup;}
00048 
00049 //              ---------------------
00050 //              -- Class Interface --
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     DTBtiCard(DTTrigGeom *);
00067 
00069     ~DTBtiCard();
00070 
00072     void clearCache();
00073 
00075     void setConfig(const DTConfigManager *conf);
00076 
00078     inline bool debug() const {return _debug;}
00079 
00081     DTBtiChip* getBTI(int sl, int n) const; 
00082 
00084     DTBtiChip* getBTI(const DTBtiId& btiid) const {
00085       return getBTI(btiid.superlayer(),btiid.bti());
00086     }
00087 
00089     LocalPoint localPosition(const DTTrigData*) const;
00091     LocalVector localDirection(const DTTrigData*) const;
00092 
00094     std::vector<DTBtiChip*> btiList(int);
00095 
00100     DTBtiTrig* storeTrigger(DTBtiTrigData);
00101 
00102     // run the trigger algorithm
00103     virtual void reconstruct(const DTDigiCollection dtDigis) { clearCache();loadBTI(dtDigis); runBTI(); }
00104  
00106     DTConfigBti* config_bti(DTBtiId& btiid) const;
00107 
00109    inline bool useAcceptParamFlag() { return _flag_acc; } 
00110  
00111  private:
00112 
00114     void loadBTI(const DTDigiCollection dtDigis);
00115 
00117     void runBTI();
00118 
00120     DTBtiChip* activeGetBTI(int sl, int n);
00121 
00123     DTBtiChip* activeGetBTI(const DTBtiId& btiid) {
00124       return activeGetBTI(btiid.superlayer(),btiid.bti());
00125     }
00126 
00128     void localClear();
00129 
00130   private:
00131 
00132     BTIContainer _btimap[3];
00133     ConfBtiMap _conf_bti_map;   //bti configuration map for this chamber
00134 
00135     std::vector<DTDigi*> _digis; 
00136 
00137     bool _debug;
00138     DTConfigPedestals* _pedestals;
00139 
00140     bool _flag_acc;
00141 };
00142 
00143 #endif