File indexing completed on 2024-04-06 12:21:55
0001 #ifndef __STUBKILLER_H__
0002 #define __STUBKILLER_H__
0003
0004 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0005 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0006 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0007 #include "Geometry/CommonTopologies/interface/PixelGeomDetUnit.h"
0008 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
0009 #include "TRandom3.h"
0010 #include "TMath.h"
0011
0012 class StubKiller {
0013 public:
0014 StubKiller();
0015 ~StubKiller() {}
0016
0017 void initialise(unsigned int killScenario,
0018 const TrackerTopology* trackerTopology,
0019 const TrackerGeometry* trackerGeometry);
0020
0021 bool killStub(const TTStub<Ref_Phase2TrackerDigi_>* stub,
0022 const std::vector<int> layersToKill,
0023 const double minPhiToKill,
0024 const double maxPhiToKill,
0025 const double minZToKill,
0026 const double maxZToKill,
0027 const double minRToKill,
0028 const double maxRToKill,
0029 const double fractionOfStubsToKillInLayers,
0030 const double fractionOfStubsToKillEverywhere);
0031
0032 bool killStub(const TTStub<Ref_Phase2TrackerDigi_>* stub);
0033
0034 bool killStubInDeadModule(const TTStub<Ref_Phase2TrackerDigi_>* stub);
0035
0036 std::map<DetId, float> getListOfDeadModules() { return deadModules_; }
0037
0038 private:
0039 void chooseModulesToKill();
0040 void addDeadLayerModulesToDeadModuleList();
0041
0042 unsigned int killScenario_;
0043 const TrackerTopology* trackerTopology_;
0044 const TrackerGeometry* trackerGeometry_;
0045
0046 std::vector<int> layersToKill_;
0047 double minPhiToKill_;
0048 double maxPhiToKill_;
0049 double minZToKill_;
0050 double maxZToKill_;
0051 double minRToKill_;
0052 double maxRToKill_;
0053 double fractionOfStubsToKillInLayers_;
0054 double fractionOfStubsToKillEverywhere_;
0055 double fractionOfModulesToKillEverywhere_;
0056
0057 std::map<DetId, float> deadModules_;
0058 };
0059
0060 #endif