#include <TTreeStream.h>
#include "AliLog.h"
+#include "AliGeomManager.h"
#include "AliITSPlaneEff.h"
-#include "AliITSCalibrationSPD.h"
-#include "AliITSCalibrationSDD.h"
-#include "AliITSCalibrationSSD.h"
-#include "AliCDBEntry.h"
-#include "AliCDBManager.h"
-#include "AliAlignObj.h"
#include "AliTrackPointArray.h"
-#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliV0.h"
-#include "AliHelix.h"
#include "AliITSChannelStatus.h"
#include "AliITSDetTypeRec.h"
#include "AliITSRecPoint.h"
while ((cl=layer.GetNextCluster(clidx))!=0) {
if (ntracks[ilayer]>95) break; //space for skipped clusters
Bool_t changedet =kFALSE;
- if (cl->GetQ()==0 && deadzoneSPD==kTRUE) continue;
+ if (TMath::Abs(cl->GetQ())<1.e-13 && deadzoneSPD==kTRUE) continue;
Int_t idetc=cl->GetDetectorIndex();
if (currenttrack->GetDetectorIndex()==idetc) { // track already on the cluster's detector
// chi2 cut
AliDebug(2,Form("chi2 %f max %f",chi2trkcl,AliITSReconstructor::GetRecoParam()->GetMaxChi2s(ilayer)));
if (chi2trkcl < AliITSReconstructor::GetRecoParam()->GetMaxChi2s(ilayer)) {
- if (cl->GetQ()==0) deadzoneSPD=kTRUE; // only 1 prolongation with virtual cluster
+ if (TMath::Abs(cl->GetQ())<1.e-13) deadzoneSPD=kTRUE; // only 1 prolongation with virtual cluster
if (ntracks[ilayer]>=100) continue;
AliITStrackMI * updatetrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(*currenttrack);
updatetrack->SetClIndex(ilayer,-1);
if (changedet) new (¤ttrack2) AliITStrackMI(backuptrack);
- if (cl->GetQ()!=0) { // real cluster
+ if (TMath::Abs(cl->GetQ())>1.e-13) { // real cluster
if (!UpdateMI(updatetrack,cl,chi2trkcl,(ilayer<<28)+clidx)) {
AliDebug(2,"update failed");
continue;
} // loop over possible prolongations
// allow one prolongation without clusters
- if (constrain && itrack<=1 && currenttrack1.GetNSkipped()==0 && deadzoneSPD==kFALSE && ntracks[ilayer]<100) {
+ if (constrain && itrack<=1 && TMath::Abs(currenttrack1.GetNSkipped())<1.e-13 && deadzoneSPD==kFALSE && ntracks[ilayer]<100) {
AliITStrackMI* vtrack = new (&tracks[ilayer][ntracks[ilayer]]) AliITStrackMI(currenttrack1);
// apply correction for material of the current layer
CorrectForLayerMaterial(vtrack,ilayer,trackGlobXYZ1,"inward");
if (z+fNMaxSigmaCl*TMath::Sqrt(fClusters[i]->GetSigmaZ2())<fZmin+fNMaxSigmaCl*fMaxSigmaClZ) continue;
if (z-fNMaxSigmaCl*TMath::Sqrt(fClusters[i]->GetSigmaZ2())>fZmax-fNMaxSigmaCl*fMaxSigmaClZ) continue;
//
- if (fClusters[i]->GetQ()==0&&fSkip==2) continue;
+ if (TMath::Abs(fClusters[i]->GetQ())<1.e-13 && fSkip==2) continue;
ci=i;
if (!test) fI=i+1;
return fClusters[i];
for (Int_t i=fI; i<fImax; i++) {
if (fYcs[i]<fYmin) continue;
if (fYcs[i]>fYmax) continue;
- if (fClustersCs[i]->GetQ()==0&&fSkip==2) continue;
+ if (TMath::Abs(fClustersCs[i]->GetQ())<1.e-13 && fSkip==2) continue;
ci=fClusterIndexCs[i];
if (!test) fI=i+1;
return fClustersCs[i];
Int_t l=(index & 0xf0000000) >> 28;
Int_t c=(index & 0x0fffffff) >> 00;
if (c>fgLayers[l].GetNumberOfClusters()) continue;
- if (ny[l]==0){
+ if (ny[l]<1.e-13){
printf("problem\n");
}
AliITSRecPoint *cl = (AliITSRecPoint*)GetCluster(index);
Int_t index = clusterlist[icluster];
Int_t l=(index & 0xf0000000) >> 28;
Int_t c=(index & 0x0fffffff) >> 00;
- if (ny[l]==0){
+ if (ny[l]<1.e-13){
printf("problem\n");
}
if (c>fgLayers[l].GetNumberOfClusters()) continue;
}
//------------------------------------------------------------------------
-void AliITStrackerMI::CookdEdx(AliITStrackMI* track)
-{
+void AliITStrackerMI::CookdEdx(AliITStrackMI* track){
+ //
+ // Fill the dE/dx in this track
//
track->SetChi2MIP(9,0);
for (Int_t i=0;i<track->GetNumberOfClusters();i++){
}
}
- if (cl->GetQ()<=0) return 0; // ingore the "virtual" clusters
+ if (TMath::Abs(cl->GetQ())<1.e-13) return 0; // ingore the "virtual" clusters
// Take into account the mis-alignment (bring track to cluster plane)
}
return;
}
-
Int_t UpdateMI(AliITStrackMI* track, const AliITSRecPoint* cl,Double_t chi2,Int_t layer) const;
AliPlaneEff *GetPlaneEff() {return (AliPlaneEff*)fPlaneEff;} // return the pointer to AliPlaneEff
void SetDetTypeRec(const AliITSDetTypeRec *detTypeRec) {fkDetTypeRec = detTypeRec; ReadBadFromDetTypeRec(); }
- TObjArray* GetTrackHypothesys() {return &fTrackHypothesys;}
- TObjArray* GetBestHypothesys() {return &fBestHypothesys;}
- TObjArray* GetOriginal() {return &fOriginal;}
- TTreeSRedirector *GetDebugStreamer() {return fDebugStreamer;}
+ TObjArray* GetTrackHypothesys() {return &fTrackHypothesys;}
+ TObjArray* GetBestHypothesys() {return &fBestHypothesys;}
+ TObjArray* GetOriginal() {return &fOriginal;}
+ TTreeSRedirector *GetDebugStreamer() const {return fDebugStreamer;}
static Int_t CorrectForTPCtoITSDeadZoneMaterial(AliITStrackMI *t);
void SetForceSkippingOfLayer();
Int_t ForceSkippingOfLayer(Int_t l) const { return fForceSkippingOfLayer[l]; }
Double_t GetRoad() const {return fRoad;}
Double_t GetR() const {return fR;}
Int_t FindClusterIndex(Float_t z) const;
- AliITSRecPoint *GetCluster(Int_t i) const {return i<fN? fClusters[i]:0;}
- Float_t *GetWeight(Int_t i) {return i<fN ?&fClusterWeight[i]:0;}
+ AliITSRecPoint *GetCluster(Int_t i) const {return i<fN ? fClusters[i]:0;}
+ Float_t *GetWeight(Int_t i) {return i<fN ? &fClusterWeight[i]:0;}
AliITSdetector &GetDetector(Int_t n) const { return fDetectors[n]; }
Int_t FindDetectorIndex(Double_t phi, Double_t z) const;
Double_t GetThickness(Double_t y, Double_t z, Double_t &x0) const;
// positive means "normal constraint"
fConstraint[0]=flags[0];
- if (cuts==0) return;
+ if (!cuts) return;
}
inline void AliITStrackerMI::SetupSecondPass(const Int_t *flags,const Double_t *cuts) {
// positive means "normal constraint"
fConstraint[1]=flags[0];
- if (cuts==0) return;
+ if (!cuts) return;
}
inline void AliITStrackerMI::CookLabel(AliKalmanTrack *t,Float_t wrong) const {
xyz[1] = fR*fSinPhi + cl->GetY()*fCosPhi;
}
#endif
-