]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAlignmentTracks.h
Fix for report #60402 Problem with AliHMPIDPreprocessor. The access to the time stamp...
[u/mrichter/AliRoot.git] / STEER / AliAlignmentTracks.h
index 7d0f653e1a5aa797c01329e937a799a052a4db70..8524982cf0912f69b4e49bea468df51ccc79a5b7 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);
@@ -35,7 +33,19 @@ class AliAlignmentTracks : public TObject {
   void SetPointsFilename(const char *pointsfilename = "AliTrackPoints.root") { fPointsFilename = pointsfilename; }
 
   void ProcessESD(TSelector *selector);
-  void ProcessESD();
+  void ProcessESD(Bool_t onlyITS=kFALSE,Int_t minITSpts=0,
+                 Bool_t cuts=kTRUE,
+                 Float_t minAngleWrtITSModulePlanes=0.,
+                 Float_t minMom=0.3,Float_t maxMom=1.e9,
+                 Float_t minAbsSinPhi=0.,Float_t maxAbsSinPhi=1.,
+                 Float_t minSinTheta=0.,Float_t maxSinTheta=1.);
+  void ProcessESDCosmics(Bool_t onlyITS=kFALSE,Int_t minITSpts=0,
+                        Float_t maxMatchingAngle=0.17, // 10 deg
+                        Bool_t cuts=kTRUE,
+                        Float_t minAngleWrtITSModulePlanes=0.,
+                        Float_t minMom=0.3,Float_t maxMom=1.e9,
+                        Float_t minAbsSinPhi=0.,Float_t maxAbsSinPhi=1.,
+                        Float_t minSinTheta=0.,Float_t maxSinTheta=1.);
 
   void BuildIndex();
 
@@ -44,28 +54,34 @@ class AliAlignmentTracks : public TObject {
   void SetTrackFitter(AliTrackFitter *fitter) { fTrackFitter = fitter; }
   void SetMinimizer(AliTrackResiduals *minimizer) { fMinimizer = minimizer; }
 
-  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, 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,
-                  Int_t iterations = 1);
+  Bool_t AlignDetector(AliGeomManager::ELayerID firstLayer,
+                      AliGeomManager::ELayerID lastLayer,
+                      AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer,
+                      AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer,Int_t iterations = 1);
+  Bool_t AlignLayer(AliGeomManager::ELayerID layer,
+                   AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer,
+                   AliGeomManager::ELayerID layerRangeMax = AliGeomManager::kLastLayer,
+                   Int_t iterations = 1);
+  Bool_t AlignVolume(UShort_t volId, UShort_t volIdFit,
+                    Int_t iterations);
+  Bool_t AlignVolumes(const TArrayI *volids, const TArrayI *volidsfit = 0x0,
+                     AliGeomManager::ELayerID layerRangeMin = AliGeomManager::kFirstLayer,
+                     AliGeomManager::ELayerID layerRangeMax = AliGeomManager::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];
+    AliGeomManager::ELayerID iLayer = AliGeomManager::VolUIDToLayer(volid,iModule);
+    return fAlignObjs[iLayer-AliGeomManager::kFirstLayer][iModule];
   }
   void    SetUpdate(Bool_t update){fDoUpdate = update;}
+  void SetCovIsUsed(Bool_t covisused){fCovIsUsed=covisused;}
   Bool_t  GetUpdate() const { return fDoUpdate;}
+  void WriteRealignObjArray(TString outfilename,AliGeomManager::ELayerID layerRangeMin,AliGeomManager::ELayerID layerRangeMax);
+  Int_t GetLastIndex(Int_t iLayer,Int_t iModule) const { return fLastIndex[iLayer][iModule]; }  
+
+  Bool_t Misalign(const char *misalignObjFileName, const char* arrayName);
+
  protected:
 
   void InitIndex();
@@ -76,14 +92,12 @@ class AliAlignmentTracks : public TObject {
   void ResetAlignObjs();
   void DeleteAlignObjs();
 
-  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points);
+  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points,Int_t &pointsdim);
   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
@@ -96,6 +110,12 @@ class AliAlignmentTracks : public TObject {
   AliTrackFitter   *fTrackFitter;    //  Pointer to the track fitter
   AliTrackResiduals*fMinimizer;      //  Pointer to track residuals minimizer
   Bool_t            fDoUpdate;       //  Indicator - update Alignment object after minimization
+  Bool_t            fCovIsUsed;      //  Indicator - use AlignObjs' Cov matrices
+
+ private:
+  AliAlignmentTracks(const AliAlignmentTracks & alignment);
+  AliAlignmentTracks& operator= (const AliAlignmentTracks& alignment);
+
   ClassDef(AliAlignmentTracks,2)
 
 };