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

# Content
1 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
2 #define Alignment_CommonAlignmentAlgorithm_AlignmentParameterBuilder_h
3
4 #include <string>
5 #include <vector>
6
7 /** \class AlignmentParameterBuilder
8 *
9 * Build Alignment Parameter Structure
10 *
11 * $Date: 2006/11/30 10:08:26 $
12 * $Revision: 1.6 $
13 * (last update by $Author: flucke $)
14 */
15
16 namespace edm {
17 class ParameterSet;
18 }
19 class AlignableTracker;
20 class AlignableMuon;
21 class Alignable;
22 class AlignmentParameters;
23
24 class AlignmentParameterBuilder
25 {
26 public:
27
28 /// Constructor from tracker only
29 explicit AlignmentParameterBuilder( AlignableTracker *alignableTracker );
30
31 /// Constructor from tracker and muon
32 AlignmentParameterBuilder( AlignableTracker *alignableTracker, AlignableMuon *alignableMuon );
33
34 /// Constructor adding selections by passing the ParameterSet named 'AlignmentParameterSelector'
35 /// (expected in pSet) to addSelections(..)
36 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
43 /// destructor
44 virtual ~AlignmentParameterBuilder() {};
45
46 /// 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 unsigned int addSelections(const edm::ParameterSet &pset);
53
54 /// 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
59 /// Get list of alignables for which AlignmentParameters are built
60 std::vector<Alignable*> alignables() { return theAlignables; };
61
62 /// Remove n Alignables from list
63 void fixAlignables( int n );
64
65 private:
66
67 /// 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 // data members
74
75 /// Vector of alignables
76 std::vector<Alignable*> theAlignables;
77
78 /// Alignable tracker
79 AlignableTracker* theAlignableTracker;
80
81 /// Alignable muon
82 AlignableMuon* theAlignableMuon;
83
84 };
85
86 #endif