]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAlignmentTracks.h
Bug fix
[u/mrichter/AliRoot.git] / STEER / AliAlignmentTracks.h
index 5cf6a8a99adf4237501c51cb4d6689276fc48533..c03dbd10dfbeed2e4a0d3de43916c81a23626c0c 100644 (file)
@@ -25,8 +25,6 @@ class AliAlignmentTracks : public TObject {
   AliAlignmentTracks();
   AliAlignmentTracks(TChain *esdchain);
   AliAlignmentTracks(const char *esdfilename, const char *esdtreename = "esdTree");
-  AliAlignmentTracks(const AliAlignmentTracks & alignment);
-  AliAlignmentTracks& operator= (const AliAlignmentTracks& alignment);
   virtual ~AliAlignmentTracks();
 
   void AddESD(TChain *esdchain);
@@ -38,23 +36,34 @@ class AliAlignmentTracks : public TObject {
   void ProcessESD();
 
   void BuildIndex();
-/*   void BuildIndexLayer(AliAlignObj::ELayerID layer); */
-/*   void BuildIndexVolume(UShort_t volid); */
 
-  Bool_t ReadAlignObjs(const char *alignobjfilename = "AlignObjs.root");
+  Bool_t ReadAlignObjs(const char *alignObjFileName = "AlignObjs.root", const char* arrayName = "Alignment");
 
   void SetTrackFitter(AliTrackFitter *fitter) { fTrackFitter = fitter; }
   void SetMinimizer(AliTrackResiduals *minimizer) { fMinimizer = minimizer; }
 
-  void Align(Int_t iterations = 100);
+  void AlignDetector(AliAlignObj::ELayerID firstLayer,
+                    AliAlignObj::ELayerID lastLayer,
+                    AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
+                    AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer,Int_t iterations = 1);
   void AlignLayer(AliAlignObj::ELayerID layer,
                  AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
                  AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer,
                  Int_t iterations = 1);
-  void AlignVolume(UShort_t volid,
+  void AlignVolume(UShort_t volId, UShort_t volIdFit,
+                  Int_t iterations);
+  void AlignVolumes(const TArrayI *volids, const TArrayI *volidsfit = 0x0,
                   AliAlignObj::ELayerID layerRangeMin = AliAlignObj::kFirstLayer,
-                  AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer);
-
+                  AliAlignObj::ELayerID layerRangeMax = AliAlignObj::kLastLayer,
+                  Int_t iterations = 1);
+
+  AliAlignObj* GetAlignObj(UShort_t volid) const {
+    Int_t iModule;
+    AliAlignObj::ELayerID iLayer = AliAlignObj::VolUIDToLayer(volid,iModule);
+    return fAlignObjs[iLayer-AliAlignObj::kFirstLayer][iModule];
+  }
+  void    SetUpdate(Bool_t update){fDoUpdate = update;}
+  Bool_t  GetUpdate() const { return fDoUpdate;}
  protected:
 
   void InitIndex();
@@ -65,12 +74,14 @@ class AliAlignmentTracks : public TObject {
   void ResetAlignObjs();
   void DeleteAlignObjs();
 
-  Int_t LoadPoints(UShort_t volid, AliTrackPointArray** &points);
+  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points);
   void  UnloadPoints(Int_t n, AliTrackPointArray **points);
 
   AliTrackFitter *CreateFitter();
   AliTrackResiduals *CreateMinimizer();
 
+  Bool_t Misalign(const char *misalignObjFileName, const char* arrayName);
+
   TChain           *fESDChain;       //! Chain with ESDs
   TString           fPointsFilename; //  Name of the file containing the track point arrays
   TFile            *fPointsFile;     //  File containing the track point arrays
@@ -79,10 +90,16 @@ class AliAlignmentTracks : public TObject {
   TArrayI        ***fArrayIndex;     //! Volume arrays which contains the tree index
   Bool_t            fIsIndexBuilt;   //  Is points tree index built
   AliAlignObj    ***fAlignObjs;      //  Array with alignment objects
+  AliAlignObj    ***fMisalignObjs;   //  Array with alignment objects used to introduce misalignment of the space-points
   AliTrackFitter   *fTrackFitter;    //  Pointer to the track fitter
   AliTrackResiduals*fMinimizer;      //  Pointer to track residuals minimizer
+  Bool_t            fDoUpdate;       //  Indicator - update Alignment object after minimization
+
+ private:
+  AliAlignmentTracks(const AliAlignmentTracks & alignment);
+  AliAlignmentTracks& operator= (const AliAlignmentTracks& alignment);
 
-  ClassDef(AliAlignmentTracks,1)
+  ClassDef(AliAlignmentTracks,2)
 
 };