00001 #ifndef LaserAlignment_LaserAlignmentAlgorithmTEC2TEC_h 00002 #define LaserAlignment_LaserAlignmentAlgorithmTEC2TEC_h 00003 00014 // Alignable Tracker needed to propagate the alignment corrections calculated 00015 // for the disks down to the lowest levels 00016 #include "Alignment/TrackerAlignment/interface/AlignableTracker.h" 00017 00018 #include <iostream> 00019 #include <vector> 00020 00021 class LaserAlignmentAlgorithmTEC2TEC 00022 { 00023 00024 public: 00026 LaserAlignmentAlgorithmTEC2TEC(edm::ParameterSet const& theConf, int theLaserIteration); 00027 00029 ~LaserAlignmentAlgorithmTEC2TEC(); 00030 00032 void addLaserBeam(std::vector<double> theMeasurementsPosTEC, std::vector<double> theMeasurementsTOB, 00033 std::vector<double> theMeasurementsTIB, std::vector<double> theMeasurementsNegTEC, 00034 int LaserBeam, int LaserRing); 00036 void doGlobalFit(AlignableTracker * theAlignableTracker); 00037 00039 void resetMillepede(int UnitForIteration); 00040 00041 private: 00043 void initMillepede(int UnitForIteration); 00044 00045 private: 00046 // arrays to hold the global and local parameters 00047 int theFirstFixedDiskTEC2TEC; 00048 int theSecondFixedDiskTEC2TEC; 00049 00050 /* ATTENTION we have more than 27 parameters in this case! */ 00051 float theGlobalParametersTEC2TEC[66]; 00052 float theLocalParametersTEC2TEC[1]; 00053 00054 }; 00055 #endif