ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/CMSSW/Alignment/CommonAlignmentAlgorithm/interface/AlignmentParameterBuilder.h
Revision: 1.5
Committed: Tue Nov 7 10:22:56 2006 UTC (18 years, 6 months ago) by flucke
Content type: text/plain
Branch: MAIN
CVS Tags: CMSSW_1_2_6, CMSSW_1_2_5, CMSSW_1_2_4, CMSSW_1_2_0_4821, CMSSW_1_2_0_g4_82p01, CMSSW_1_2_3, CMSSW_1_2_0_g4_82, CMSSW_1_2_2, CMSSW_1_2_1, CMSSW_1_2_0_g4_81, CMSSW_1_2_0_SL4, CMSSW_1_2_0, CMSSW_1_2_0_pre9, CMSSW_1_2_0_pre8_g4_81, CMSSW_1_2_0_pre8, V00-07-03, CMSSW_1_2_0_pre6, CMSSW_1_2_0_pre5, V00-07-02, V00-07-01, V00-07-00
Changes since 1.4: +14 -19 lines
Log Message:
Completely decouple selection of Alignables AND their active parameters
from building the requested  AlignmentParameters by:
- replacing  AlignableSelector by AlignmentParameterSelector
- moving decoding of selection of active parameters from
  AlignmentParameterBuilder to AlignmentParameterSelector

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 flucke 1.5 * $Date: 2006/11/03 16:28:54 $
12     * $Revision: 1.4 $
13 flucke 1.3 * (last update by $Author: flucke $)
14     */
15    
16 flucke 1.4 namespace edm {
17     class ParameterSet;
18     }
19     class Alignabletracker;
20 fronga 1.1
21     class AlignmentParameterBuilder
22     {
23     public:
24    
25     /// Constructor
26 flucke 1.4 explicit AlignmentParameterBuilder(AlignableTracker *alignableTracker);
27 flucke 1.5 /// Constructor adding selections by passing the ParameterSet named 'AlignmentParameterSelector'
28     /// (expected in pSet) to addSelections(..)
29 flucke 1.4 AlignmentParameterBuilder(AlignableTracker *alignableTracker, const edm::ParameterSet &pSet);
30 fronga 1.1
31     /// destructor
32 flucke 1.4 virtual ~AlignmentParameterBuilder() {};
33 fronga 1.1
34 flucke 1.5 /// Add selections of Alignables, using AlignmenParameterSelector::addSelections.
35     /// For each Alignable, (Composite)RigidBodyAlignmentParameters will be attached
36     /// using the selection of active parameters done in AlignmenParameterSelector,
37     /// e.g. a selection string '11100' selects the degrees of freedom in (x,y,z),
38     /// but not (alpha,beta,gamma).
39     /// Returns number of added selections
40 flucke 1.4 unsigned int addSelections(const edm::ParameterSet &pset);
41 fronga 1.1
42 flucke 1.5 /// Add arbitrary selection of Alignables, return number of higher level Alignables
43     unsigned int add(const std::vector<Alignable*> &alignables, const std::vector<bool> &sel);
44     /// Add a single Alignable, true if it is higher level, false if it is an AlignableDet
45     bool add(Alignable *alignable, const std::vector<bool> &sel);
46 fronga 1.1
47     /// Get list of alignables for which AlignmentParameters are built
48 flucke 1.2 std::vector<Alignable*> alignables() { return theAlignables; };
49 fronga 1.1
50     /// Remove n Alignables from list
51     void fixAlignables( int n );
52    
53     private:
54    
55     // data members
56    
57     /// Vector of alignables
58     std::vector<Alignable*> theAlignables;
59    
60     /// Alignable tracker
61     AlignableTracker* theAlignableTracker;
62    
63     };
64    
65     #endif