]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSRealignTracks.h
- include option to avoid multiple reconstruction of tracklets in the
[u/mrichter/AliRoot.git] / ITS / AliITSRealignTracks.h
1 #ifndef ALIITSREALIGNTRACKS_H
2 #define ALIITSREALIGNTRACKS_H
3
4 #include <TArray.h>
5 #include <TFile.h>
6 #include <TArray.h>
7 #include "AliGeomManager.h"
8 #include "AliAlignmentTracks.h"
9 #include "AliAlignObjParams.h"
10
11 class AliITSRealignTracks: public AliAlignmentTracks {
12  public:
13   
14   AliITSRealignTracks():
15     AliAlignmentTracks(),
16     fSurveyObjs(0),
17     fgeomfilename(),
18     fmintracks(0),
19     fCovIsUsed(kFALSE),
20     fUpdateCov(kFALSE){}
21   
22   AliITSRealignTracks(TString minimizer,Int_t fit=0,Bool_t covUsed=kFALSE,TString fileintro="AliTrackPoints.root",TString geometryfile="geometry.root",TString misalignmentFile="",TString startingfile="");
23   AliITSRealignTracks(const AliITSRealignTracks &realignTracks);
24   AliITSRealignTracks& operator=(const AliITSRealignTracks& obj);
25   ~AliITSRealignTracks();
26   
27   void InitAlignObjs();
28   Bool_t InitSurveyObjs(Bool_t infinite=kFALSE,Double_t factor=1.,Bool_t fromfile=kFALSE,TString filename="",TString arrayName="");
29   void ResetAlignObjs();
30   void DeleteSurveyObjs();
31   Bool_t SelectFitter(Int_t fit,Int_t minTrackPoint=2);
32   Bool_t SelectMinimizer(TString minimizer,Int_t minpoints=1,const Bool_t *coord=0x0);
33   void SetMinNtracks(Int_t minNtracks){fmintracks=minNtracks;}
34   void SetCovUpdate(Bool_t covupdate){fUpdateCov=covupdate;}
35   void SetGeomFilename(TString geomfilename){fgeomfilename=geomfilename;}
36   //  Int_t LoadPoints(const TArrayI *volids, AliTrackPointArray** &points);
37   Bool_t ReadAlignObjs(const char *alignObjFileName = "AlignObjs.root", const char* arrayName = "Alignment");
38   void RealignITSVolIndependent(Int_t iter1,Int_t iterations,Int_t minNtracks,Int_t layer=0,Int_t minTrackPoint=6);
39   void RealignITStracks(TString minimizer,Int_t fit,Int_t iter1,Int_t iterations,Int_t minNtracks,Int_t layer,Int_t minTrackPoint,Bool_t covUsed,TString misalignmentFile,TString startingfile,Int_t doGlobal);
40   Bool_t AlignVolumesITS(const TArrayI *volids, const TArrayI *volidsfit,AliGeomManager::ELayerID layerRangeMin,AliGeomManager::ELayerID layerRangeMax,Int_t iterations);
41   Bool_t FirstAlignmentSPD(Int_t minNtracks,Int_t iterations,TArrayI *volidsSet=0x0);
42   Bool_t FirstAlignmentLayers(Bool_t *layers,Int_t minNtracks,Int_t iterations,TArrayI *volidsSet=0x0);
43   Bool_t SPDmodulesAlignToSSD(Int_t minNtracks,Int_t iterations);
44   Bool_t AlignSPDBarrel(Int_t iterations);
45   Bool_t AlignSPDHalfBarrel(Int_t method,Int_t iterations);
46   Bool_t AlignLayer(Int_t layer,Int_t iterations);
47   Bool_t AlignLayersToLayers(Int_t *layer,Int_t iterations);
48   Bool_t AlignLayerToSPDHalfBarrel(Int_t layer,Int_t updown,Int_t iterations);
49   Bool_t AlignLayerToSector(Int_t layer,Int_t sector,Int_t iterations);
50   Bool_t AlignSPDSectorToOuterLayers(Int_t sector,Int_t iterations);
51   Bool_t AlignSPDSectorWithSectors(Int_t sector,Int_t iterations);
52   Bool_t AlignSPDSectorsWithSectors(Int_t *sectorIN,Int_t *sectorFit,Int_t iterations);
53   Bool_t AlignSPDHalfBarrelToHalfBarrel(Int_t updown,Int_t iterations); 
54   Bool_t AlignSPDHalfBarrelToSectorRef(Int_t sector,Int_t iterations);
55   Bool_t AlignSPD1SectorRef(Int_t sector,Int_t iterations);
56   //masera  void AlignGlobalToSectRef(Int_t sector,Int_t minNtracks=100);
57   TArrayI* GetLayersVolUID(Int_t *layer);
58   AliAlignObjParams* MediateAlignObj(TArrayI *volIDs,Int_t lastVolid);
59   TArrayI* GetSPDSectorsVolids(Int_t *sectors); 
60   TArrayI* SelectLayerInVolids(const TArrayI *volidsIN,AliGeomManager::ELayerID layer);
61   TArrayI* JoinVolArrays(const TArrayI *vol1,const TArrayI *vol2);
62   TArrayI* IntersectVolArray(const TArrayI *vol1,const TArrayI *vol2);
63   TArrayI* ExcludeVolidsFromVolidsArray(const TArrayI *volidsToExclude,const TArrayI *volStart);
64   TArrayI* GetLayerVolumes(Int_t *layer);
65   
66
67  private:
68   
69   AliAlignObj    ***fSurveyObjs;   // Array with survey measurments 
70   TString          fgeomfilename; // Geometry file name
71   Double_t           fmintracks;   // minimum number of tracks to realign a set of volumes
72   Bool_t             fCovIsUsed;   // indicates wheter AlignObj's cov. matrix is used in loading the points 
73   Bool_t             fUpdateCov;   // Update of Covariance for AlignObjs
74
75   ClassDef(AliITSRealignTracks,2)
76     
77     };
78     
79 #endif