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);
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();
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]; }
protected:
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();
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
+ Bool_t fCovIsUsed; // Indicator - use AlignObjs' Cov matrices
+
+ private:
+ AliAlignmentTracks(const AliAlignmentTracks & alignment);
+ AliAlignmentTracks& operator= (const AliAlignmentTracks& alignment);
- ClassDef(AliAlignmentTracks,1)
+ ClassDef(AliAlignmentTracks,2)
};