File indexing completed on 2024-09-07 04:34:27
0001 #ifndef Alignment_CommonAlignmentAlgorithm_TkModuleGroupSelector_h
0002 #define Alignment_CommonAlignmentAlgorithm_TkModuleGroupSelector_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 #include "Alignment/CommonAlignment/interface/Alignable.h"
0021
0022 #include <vector>
0023 #include <map>
0024 #include <list>
0025
0026 class AlignableTracker;
0027 class AlignableMuon;
0028 class AlignableExtras;
0029
0030 namespace edm {
0031 class EventSetup;
0032 class ParameterSet;
0033 }
0034
0035 class TkModuleGroupSelector {
0036 public:
0037
0038 explicit TkModuleGroupSelector(AlignableTracker *aliTracker,
0039 const edm::ParameterSet &cfg,
0040 const std::vector<int> &sdets);
0041
0042
0043 virtual ~TkModuleGroupSelector() {}
0044
0045
0046 unsigned int getNumberOfParameters() const;
0047
0048
0049 unsigned int numIovs() const;
0050
0051
0052 edm::RunNumber_t firstRunOfIOV(unsigned int iovNum) const;
0053
0054
0055
0056 int getParameterIndexFromDetId(unsigned int detId, edm::RunNumber_t run) const;
0057
0058 private:
0059
0060 void createModuleGroups(AlignableTracker *aliTracker,
0061 const edm::VParameterSet &granularityConfig,
0062 const std::vector<edm::RunNumber_t> &defaultRunRange,
0063 edm::RunNumber_t defaultReferenceRun);
0064
0065
0066 void verifyParameterNames(const edm::ParameterSet &pset, unsigned int psetnr) const;
0067
0068
0069 const bool testSplitOption(const edm::ParameterSet &pset) const;
0070
0071
0072 bool createGroup(unsigned int &Id,
0073 const std::vector<edm::RunNumber_t> &range,
0074 const std::list<Alignable *> &selected_alis,
0075 const edm::RunNumber_t refrun
0076 );
0077
0078
0079
0080 void fillDetIdMap(const unsigned int detid, const unsigned int groupid);
0081
0082
0083
0084 std::vector<edm::RunNumber_t> globalRunRange_;
0085
0086
0087 std::vector<unsigned int> firstId_;
0088
0089
0090 std::vector<std::vector<edm::RunNumber_t> > runRange_;
0091
0092
0093 std::map<unsigned int, unsigned int> mapDetIdGroupId_;
0094
0095
0096 unsigned int nparameters_;
0097
0098
0099 std::vector<int> subdetids_;
0100
0101
0102 std::vector<edm::RunNumber_t> referenceRun_;
0103 };
0104
0105 #endif