ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/interface/AlignmentParameterBuilder.h
Revision: 1.7
Committed: Tue Jan 23 16:07:08 2007 UTC (18 years, 3 months ago) by fronga
Content type: text/plain
Branch: MAIN
CVS Tags: CMSSW_1_6_12, CMSSW_1_6_12_pre2, CMSSW_1_6_12_pre1, CMSSW_1_6_11, CMSSW_1_7_7, CMSSW_1_6_11_pre1, CMSSW_1_7_6, CMSSW_1_6_10, CMSSW_1_6_10_pre2, CMSSW_1_6_10_pre1, CMSSW_1_6_9, CMSSW_1_6_9_pre2, CMSSW_1_6_9_pre1, CMSSW_1_7_5, CMSSW_1_7_4, CMSSW_1_7_3, CMSSW_1_6_8, CMSSW_1_6_8_pre2, CMSSW_1_7_2, CMSSW_1_6_8_pre1, CMSSW_1_7_1, CMSSW_1_7_0, CMSSW_1_7_0_pre13, CMSSW_1_4_10, CMSSW_1_7_0_pre12, CMSSW_1_7_0_pre11, CMSSW_1_7_0_pre10, CMSSW_1_7_0_pre9, CMSSW_1_7_0_pre8, CMSSW_1_7_0_pre7, CMSSW_1_4_9, CMSSW_1_4_8, CMSSW_1_6_7, CMSSW_1_7_0_pre6, CMSSW_1_6_6, CMSSW_1_6_5, CMSSW_1_6_5_pre1, CMSSW_1_6_4, CMSSW_1_7_0_pre5, CMSSW_1_6_3, CMSSW_1_6_1, CMSSW_1_7_0_pre4, V01-04-00-08, CMSSW_1_7_0_pre3, CMSSW_1_7_0_pre2, CMSSW_1_6_0, CMSSW_1_6_0_pre14, CMSSW_1_7_0_pre1, CMSSW_1_6_0_DAQ3, CMSSW_1_6_0_pre13, CMSSW_1_6_0_pre12, CMSSW_1_6_0_pre11, CMSSW_1_6_0_pre10, CMSSW_1_4_7, CMSSW_1_6_0_pre9, CMSSW_1_6_0_pre8, CMSSW_1_5_4, CMSSW_1_6_0_pre7, CMSSW_1_5_3, CMSSW_1_6_0_pre6, CMSSW_1_4_6, CMSSW_1_3_6, CMSSW_1_6_0_DAQ1, CMSSW_1_6_0_pre5, V01-04-00-07, V01-09-00, V01-04-00-06, CMSSW_1_6_0_pre4, CMSSW_1_3_1_HLT6, CMSSW_1_5_2, CMSSW_1_3_5, CMSSW_1_6_0_pre3, CMSSW_1_6_0_pre2, CMSSW_1_6_0_pre1, CMSSW_1_5_1, CMSSW_1_4_5, CMSSW_1_5_0, V01-08-01, V01-04-00-05, CMSSW_1_4_3g483, CMSSW_1_4_4, CMSSW_1_5_0_pre6, CMSSW_1_4_3, V01-04-00-03, V01-08-00, CMSSW_1_3_1_HLT5, CMSSW_1_5_0_pre5, CMSSW_1_4_2, CMSSW_1_3_1_HLT4, CMSSW_1_4_1, CMSSW_1_5_0_pre4, V01-07-04, CMSSW_1_3_1_HLT3, CMSSW_1_5_0_pre3, V01-07-03, V01-07-02, CMSSW_1_4_0_DAQ1, CMSSW_1_3_4, V01-06-01, CMSSW_1_3_3, V01-07-01, V01-04-00-02, CMSSW_1_4_0, CMSSW_1_5_0_pre2, CMSSW_1_3_2, CMSSW_1_4_0_pre7, CMSSW_1_4_0_pre6, CMSSW_1_4_0_pre5, V01-07-00, V01-04-00-01, CMSSW_1_5_0_pre1, CMSSW_1_4_0_pre4, V01-06-00, V01-05-00, V01-04-01, CMSSW_1_3_1, CMSSW_1_4_0_pre3, CMSSW_1_4_0_pre2, V01-04-00, CMSSW_1_3_0, CMSSW_1_3_0_pre7, V01-03-01, CMSSW_1_4_0_pre1, V01-03-00, CMSSW_1_3_0_pre6, cklae_20070314, V01-02-00, V01-01-04, CMSSW_1_3_0_pre5, CMSSW_1_3_0_pre4, V01-01-03, CMSSW_1_3_0_pre3, V01-01-02, CMSSW_1_3_0_SLC4_pre2, CMSSW_1_3_0_pre2, V01-01-01, V01-01-00
Branch point for: V01-04-00-04
Changes since 1.6: +18 -5 lines
Log Message:
Added functionalities for alignment of muon devices (plus some clean-up).

File Contents

# User Rev Content
1 fronga 1.1 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
2     #define Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
3    
4     #include <string>
5     #include <vector>
6    
7 flucke 1.3 /** \class AlignmentParameterBuilder
8     *
9     * Build Alignment Parameter Structure
10     *
11 fronga 1.7 * $Date: 2006/11/30 10:08:26 $
12     * $Revision: 1.6 $
13 flucke 1.3 * (last update by $Author: flucke $)
14     */
15    
16 flucke 1.4 namespace edm {
17     class ParameterSet;
18     }
19 flucke 1.6 class AlignableTracker;
20 fronga 1.7 class AlignableMuon;
21 flucke 1.6 class Alignable;
22     class AlignmentParameters;
23 fronga 1.1
24     class AlignmentParameterBuilder
25     {
26     public:
27    
28 fronga 1.7 /// Constructor from tracker only
29     explicit AlignmentParameterBuilder( AlignableTracker *alignableTracker );
30    
31     /// Constructor from tracker and muon
32     AlignmentParameterBuilder( AlignableTracker *alignableTracker, AlignableMuon *alignableMuon );
33    
34 flucke 1.5 /// Constructor adding selections by passing the ParameterSet named 'AlignmentParameterSelector'
35     /// (expected in pSet) to addSelections(..)
36 fronga 1.7 AlignmentParameterBuilder( AlignableTracker *alignableTracker, const edm::ParameterSet &pSet );
37    
38     /// Constructor from tracker and muon, plus selection
39     AlignmentParameterBuilder( AlignableTracker *alignableTracker, AlignableMuon *alignableMuon,
40     const edm::ParameterSet &pSet);
41    
42 fronga 1.1
43     /// destructor
44 flucke 1.4 virtual ~AlignmentParameterBuilder() {};
45 fronga 1.1
46 flucke 1.5 /// Add selections of Alignables, using AlignmenParameterSelector::addSelections.
47     /// For each Alignable, (Composite)RigidBodyAlignmentParameters will be attached
48     /// using the selection of active parameters done in AlignmenParameterSelector,
49     /// e.g. a selection string '11100' selects the degrees of freedom in (x,y,z),
50     /// but not (alpha,beta,gamma).
51     /// Returns number of added selections
52 flucke 1.4 unsigned int addSelections(const edm::ParameterSet &pset);
53 fronga 1.1
54 flucke 1.5 /// Add arbitrary selection of Alignables, return number of higher level Alignables
55     unsigned int add(const std::vector<Alignable*> &alignables, const std::vector<bool> &sel);
56     /// Add a single Alignable, true if it is higher level, false if it is an AlignableDet
57     bool add(Alignable *alignable, const std::vector<bool> &sel);
58 fronga 1.1
59     /// Get list of alignables for which AlignmentParameters are built
60 flucke 1.2 std::vector<Alignable*> alignables() { return theAlignables; };
61 fronga 1.1
62     /// Remove n Alignables from list
63     void fixAlignables( int n );
64    
65     private:
66    
67 flucke 1.6 /// convert char selection (from ParameterSelector) to bool (for AlignmentParameters)
68     /// true if anything else than 0 and 1 is found in vector<char>
69     bool decodeParamSel(const std::vector<char> &paramSelChar, std::vector<bool> &result) const;
70     /// add SelectionUserVariables corresponding to fullSel
71     bool addFullParamSel(AlignmentParameters *aliPar, const std::vector<char> &fullSel) const;
72    
73 fronga 1.1 // data members
74    
75     /// Vector of alignables
76     std::vector<Alignable*> theAlignables;
77    
78     /// Alignable tracker
79     AlignableTracker* theAlignableTracker;
80    
81 fronga 1.7 /// Alignable muon
82     AlignableMuon* theAlignableMuon;
83    
84 fronga 1.1 };
85    
86     #endif