Revision: | 1.8 |
Committed: | Mon Oct 8 14:38:15 2007 UTC (17 years, 7 months ago) by cklae |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | CMSSW_2_2_13_offpatch1, CMSSW_2_2_13_HLT, CMSSW_2_2_13, CMSSW_2_2_12_HLT, CMSSW_2_2_12, CMSSW_2_2_11_offpatch1, CMSSW_2_2_11, CMSSW_2_2_11_HLT, CMSSW_2_2_10_HLT, CMSSW_2_2_10, CMSSW_2_2_9, CMSSW_2_1_19, CMSSW_2_2_8, CMSSW_2_2_7, CMSSW_2_2_6_HLT, CMSSW_2_2_6, CMSSW_2_2_5, CMSSW_2_2_4, CMSSW_2_2_3, CMSSW_2_2_2, CMSSW_2_2_1, CMSSW_2_2_0, CMSSW_2_1_17, CMSSW_3_0_0_pre2, CMSSW_2_2_0_pre1, CMSSW_2_1_12, CMSSW_3_0_0_pre1, CMSSW_2_1_11, CMSSW_2_1_10_patch2, CMSSW_2_1_10_patch1, CMSSW_2_1_10, CMSSW_2_1_9, CMSSW_2_1_8, CMSSW_2_1_7, CMSSW_2_1_6, CMSSW_2_1_5, CMSSW_2_1_4, CMSSW_2_1_3, CMSSW_2_1_2, CMSSW_2_1_1, CMSSW_2_1_0, CMSSW_2_0_12, CMSSW_2_1_0_pre11, CMSSW_2_1_0_pre10, CMSSW_2_1_0_pre9, CMSSW_2_1_0_pre8, CMSSW_2_0_11, CMSSW_2_1_0_pre7, CMSSW_2_0_10, CMSSW_2_1_0_pre6, CMSSW_2_0_9, CMSSW_2_1_0_pre5, CMSSW_2_0_8, CMSSW_2_1_0_pre4, CMSSW_2_0_7, CMSSW_2_0_6, CMSSW_2_0_5, CMSSW_2_1_0_pre3, V02-02-05, CMSSW_2_0_4, CMSSW_2_0_3, V02-02-04, CMSSW_2_0_2, CMSSW_2_0_1, CMSSW_2_1_0_pre2, V02-02-03, CMSSW_2_0_0, CMSSW_2_1_0_pre1, CMSSW_1_8_4, CMSSW_2_0_0_pre9, CMSSW_2_0_0_pre8, V02-02-02, CMSSW_1_8_3, CMSSW_2_0_0_pre7, CMSSW_1_8_2, CMSSW_2_0_0_pre6, CMSSW_2_0_0_pre5, CMSSW_1_8_1, CMSSW_2_0_0_pre4, CMSSW_1_8_0, CMSSW_2_0_0_pre3, CMSSW_1_8_0_pre10, CMSSW_1_8_0_pre9, V02-02-01, V02-02-00, V02-01-02, V02-00-02-01, V02-01-01, V02-01-00, CMSSW_2_0_0_pre2, CMSSW_2_0_0_pre1, CMSSW_1_8_0_pre8, CMSSW_1_8_0_pre7, CMSSW_1_8_0_pre6, CMSSW_1_8_0_pre5, CMSSW_1_8_0_pre4, V02-00-02, CMSSW_1_8_0_pre3a, CMSSW_1_8_0_pre2, V02-00-01, CMSSW_1_8_0_pre1, V02-00-00 |
Branch point for: | NewHierarchy165 |
Changes since 1.7: | +8 -10 lines |
Log Message: | Changes wrt CommmonAlignment and TrackerAlignment (use align::ID and StructureType). Clean up header files. |
# | User | Rev | Content |
---|---|---|---|
1 | fronga | 1.1 | #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h |
2 | #define Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h | ||
3 | |||
4 | flucke | 1.3 | /** \class AlignmentParameterBuilder |
5 | * | ||
6 | * Build Alignment Parameter Structure | ||
7 | * | ||
8 | cklae | 1.8 | * $Date: 2007/01/23 16:07:08 $ |
9 | * $Revision: 1.7 $ | ||
10 | * (last update by $Author: fronga $) | ||
11 | flucke | 1.3 | */ |
12 | |||
13 | cklae | 1.8 | #include "Alignment/CommonAlignment/interface/Utilities.h" |
14 | |||
15 | flucke | 1.4 | namespace edm { |
16 | class ParameterSet; | ||
17 | } | ||
18 | flucke | 1.6 | class AlignableTracker; |
19 | fronga | 1.7 | class AlignableMuon; |
20 | flucke | 1.6 | class AlignmentParameters; |
21 | fronga | 1.1 | |
22 | class AlignmentParameterBuilder | ||
23 | { | ||
24 | public: | ||
25 | |||
26 | fronga | 1.7 | /// Constructor from tracker only |
27 | explicit AlignmentParameterBuilder( AlignableTracker *alignableTracker ); | ||
28 | |||
29 | /// Constructor from tracker and muon | ||
30 | AlignmentParameterBuilder( AlignableTracker *alignableTracker, AlignableMuon *alignableMuon ); | ||
31 | |||
32 | flucke | 1.5 | /// Constructor adding selections by passing the ParameterSet named 'AlignmentParameterSelector' |
33 | /// (expected in pSet) to addSelections(..) | ||
34 | fronga | 1.7 | AlignmentParameterBuilder( AlignableTracker *alignableTracker, const edm::ParameterSet &pSet ); |
35 | |||
36 | /// Constructor from tracker and muon, plus selection | ||
37 | AlignmentParameterBuilder( AlignableTracker *alignableTracker, AlignableMuon *alignableMuon, | ||
38 | const edm::ParameterSet &pSet); | ||
39 | |||
40 | fronga | 1.1 | |
41 | /// destructor | ||
42 | flucke | 1.4 | virtual ~AlignmentParameterBuilder() {}; |
43 | fronga | 1.1 | |
44 | flucke | 1.5 | /// Add selections of Alignables, using AlignmenParameterSelector::addSelections. |
45 | /// For each Alignable, (Composite)RigidBodyAlignmentParameters will be attached | ||
46 | /// using the selection of active parameters done in AlignmenParameterSelector, | ||
47 | /// e.g. a selection string '11100' selects the degrees of freedom in (x,y,z), | ||
48 | /// but not (alpha,beta,gamma). | ||
49 | /// Returns number of added selections | ||
50 | flucke | 1.4 | unsigned int addSelections(const edm::ParameterSet &pset); |
51 | fronga | 1.1 | |
52 | flucke | 1.5 | /// Add arbitrary selection of Alignables, return number of higher level Alignables |
53 | cklae | 1.8 | unsigned int add(const align::Alignables &alignables, const std::vector<bool> &sel); |
54 | flucke | 1.5 | /// Add a single Alignable, true if it is higher level, false if it is an AlignableDet |
55 | bool add(Alignable *alignable, const std::vector<bool> &sel); | ||
56 | fronga | 1.1 | |
57 | /// Get list of alignables for which AlignmentParameters are built | ||
58 | cklae | 1.8 | const align::Alignables& alignables() const { return theAlignables; }; |
59 | fronga | 1.1 | |
60 | /// Remove n Alignables from list | ||
61 | void fixAlignables( int n ); | ||
62 | |||
63 | private: | ||
64 | |||
65 | flucke | 1.6 | /// convert char selection (from ParameterSelector) to bool (for AlignmentParameters) |
66 | /// true if anything else than 0 and 1 is found in vector<char> | ||
67 | bool decodeParamSel(const std::vector<char> ¶mSelChar, std::vector<bool> &result) const; | ||
68 | /// add SelectionUserVariables corresponding to fullSel | ||
69 | bool addFullParamSel(AlignmentParameters *aliPar, const std::vector<char> &fullSel) const; | ||
70 | |||
71 | fronga | 1.1 | // data members |
72 | |||
73 | /// Vector of alignables | ||
74 | cklae | 1.8 | align::Alignables theAlignables; |
75 | fronga | 1.1 | |
76 | /// Alignable tracker | ||
77 | AlignableTracker* theAlignableTracker; | ||
78 | |||
79 | fronga | 1.7 | /// Alignable muon |
80 | AlignableMuon* theAlignableMuon; | ||
81 | |||
82 | fronga | 1.1 | }; |
83 | |||
84 | #endif |