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). |
# | 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> ¶mSelChar, 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 |