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 InitIndex();
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();
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);