fFiducialZ(30.),
fnSigmaForUi00(1.5),
fAlgo(1),
-fAlgoIter0(4)
+fAlgoIter0(4),
+fSelectOnTOFBunchCrossing(kFALSE),
+fKeepAlsoUnflaggedTOFBunchCrossing(kTRUE)
{
//
// Default constructor
fFiducialZ(30.),
fnSigmaForUi00(1.5),
fAlgo(1),
-fAlgoIter0(4)
+fAlgoIter0(4),
+fSelectOnTOFBunchCrossing(kFALSE),
+fKeepAlsoUnflaggedTOFBunchCrossing(kTRUE)
{
//
// Standard constructor
Double_t radius = 2.8; //something less than the beam pipe radius
if(!PropagateTrackTo(t,radius)) continue;
}
+ // reject tracks according to bunch crossing id from TOF
+ if(fSelectOnTOFBunchCrossing) {
+ Int_t bcTOF = esdt->GetTOFBunchCrossing();
+ if(bcTOF>0) continue;
+ if(bcTOF==-1 && !fKeepAlsoUnflaggedTOFBunchCrossing) continue;
+ }
} else { // AOD (only ITS mode)
Int_t ncls0=0;
for(Int_t l=0;l<6;l++) if(TESTBIT(track->GetITSClusterMap(),l)) ncls0++;
{ fNominalCov[0]=sx*sx; fNominalCov[2]=sy*sy; fNominalCov[5]=sz*sz;
fNominalCov[1]=0.; fNominalCov[3]=0.; fNominalCov[4]=0.; return; }
void SetVtxStart(AliESDVertex *vtx);
+ void SetSelectOnTOFBunchCrossing(Bool_t select=kFALSE,Bool_t keepAlsoUnflagged=kTRUE) {fSelectOnTOFBunchCrossing=select; fKeepAlsoUnflaggedTOFBunchCrossing=keepAlsoUnflagged; return;}
static Double_t GetStrLinMinDist(const Double_t *p0,const Double_t *p1,const Double_t *x0);
static Double_t GetDeterminant3X3(Double_t matr[][3]);
static void GetStrLinDerivMatrix(const Double_t *p0,const Double_t *p1,Double_t (*m)[3],Double_t *d);
// and uses errors on track parameters as weights
// fAlgo=5 finds the average point among DCA points of all pairs of tracks
// approximated as straight lines
-
+ Bool_t fSelectOnTOFBunchCrossing; // tracks from bunch crossing 0
+ Bool_t fKeepAlsoUnflaggedTOFBunchCrossing; // also tracks w/o bunch crossing number (-1)
private:
AliVertexerTracks(const AliVertexerTracks & source);
AliVertexerTracks & operator=(const AliVertexerTracks & source);
- ClassDef(AliVertexerTracks,14) // 3D Vertexing with tracks
+ ClassDef(AliVertexerTracks,15) // 3D Vertexing with tracks
};
#endif