ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/interface/AlignmentParameterBuilder.h
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.

File Contents

# 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> &paramSelChar, 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