File indexing completed on 2024-09-07 04:34:27
0001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
0002 #define Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "Alignment/CommonAlignment/interface/Utilities.h"
0014 #include "Alignment/CommonAlignmentParametrization/interface/AlignmentParametersFactory.h"
0015
0016 namespace edm {
0017 class ParameterSet;
0018 }
0019 class AlignableExtras;
0020 class AlignableTracker;
0021 class AlignableMuon;
0022 class AlignmentParameters;
0023 class TrackerTopology;
0024
0025 class AlignmentParameterBuilder {
0026 public:
0027
0028 explicit AlignmentParameterBuilder(AlignableTracker *alignableTracker, AlignableExtras *alignableExtras);
0029
0030
0031 AlignmentParameterBuilder(AlignableTracker *alignableTracker,
0032 AlignableMuon *alignableMuon,
0033 AlignableExtras *alignableExtras);
0034
0035
0036
0037 AlignmentParameterBuilder(AlignableTracker *alignableTracker,
0038 AlignableExtras *alignableExtras,
0039 const edm::ParameterSet &pSet);
0040
0041
0042 AlignmentParameterBuilder(AlignableTracker *alignableTracker,
0043 AlignableMuon *alignableMuon,
0044 AlignableExtras *alignableExtras,
0045 const edm::ParameterSet &pSet);
0046
0047
0048 virtual ~AlignmentParameterBuilder() {}
0049
0050 void addAllSelections(const edm::ParameterSet &pSet);
0051
0052
0053
0054
0055
0056
0057
0058 unsigned int addSelections(const edm::ParameterSet &pset, AlignmentParametersFactory::ParametersType parType);
0059
0060
0061 unsigned int add(const align::Alignables &alignables,
0062 AlignmentParametersFactory::ParametersType parType,
0063 const std::vector<bool> &sel);
0064
0065 bool add(Alignable *alignable, AlignmentParametersFactory::ParametersType parType, const std::vector<bool> &sel);
0066
0067
0068 const align::Alignables &alignables() const { return theAlignables; };
0069
0070
0071 void fixAlignables(int n);
0072
0073
0074 const AlignableTracker *alignableTracker() const;
0075
0076 private:
0077
0078
0079
0080 bool decodeParamSel(std::vector<char> ¶mSelChar, std::vector<bool> &result) const;
0081
0082 bool addFullParamSel(AlignmentParameters *aliPar, const std::vector<char> &fullSel) const;
0083
0084
0085
0086
0087 align::Alignables theAlignables;
0088
0089
0090 AlignableTracker *theAlignableTracker;
0091
0092
0093 AlignableMuon *theAlignableMuon;
0094
0095
0096 AlignableExtras *theAlignableExtras;
0097 };
0098
0099 #endif