00001 #ifndef LaserAlignment_LaserAlignmentAlgorithmNegTEC_h 00002 #define LaserAlignment_LaserAlignmentAlgorithmNegTEC_h 00003 00012 // Alignable Tracker needed to propagate the alignment corrections calculated 00013 // for the disks down to the lowest levels 00014 #include "Alignment/TrackerAlignment/interface/AlignableTracker.h" 00015 00016 #include <iostream> 00017 #include <vector> 00018 00019 class LaserAlignmentAlgorithmNegTEC 00020 { 00021 00022 public: 00024 LaserAlignmentAlgorithmNegTEC(edm::ParameterSet const& theConf, int theLaserIteration); 00025 00027 ~LaserAlignmentAlgorithmNegTEC(); 00028 00030 void addLaserBeam(std::vector<double> theMeasurements, int LaserBeam, int LaserRing); 00032 void doGlobalFit(AlignableTracker * theAlignableTracker); 00033 00035 void resetMillepede(int UnitForIteration); 00036 00037 private: 00039 void initMillepede(int UnitForIteration); 00040 00041 private: 00042 // arrays to hold the global and local parameters 00043 int theFirstFixedDiskNegTEC; 00044 int theSecondFixedDiskNegTEC; 00045 float theGlobalParametersNegTEC[27]; 00046 float theLocalParametersNegTEC[1]; 00047 00048 }; 00049 #endif