CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/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*,edm::ParameterSet&);
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     // run the trigger algorithm
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;   //bti configuration map for this chamber
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