]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
VertexerTracks will consider only tracks flagged by TOF as belonging
authorshahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Jun 2011 08:31:56 +0000 (08:31 +0000)
committershahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 30 Jun 2011 08:31:56 +0000 (08:31 +0000)
to triggered bunch crossing (Andrea D.)

STEER/AliVertexerTracks.cxx
STEER/AliVertexerTracks.h

index a30c6b56425ea06165bc55409e66d5a953886c45..4b3c9ca0f8059914475e37f7b179f90a640d72fd 100644 (file)
@@ -69,7 +69,9 @@ fFiducialR(3.),
 fFiducialZ(30.),
 fnSigmaForUi00(1.5),
 fAlgo(1),
-fAlgoIter0(4)
+fAlgoIter0(4),
+fSelectOnTOFBunchCrossing(kFALSE), 
+fKeepAlsoUnflaggedTOFBunchCrossing(kTRUE)
 {
 //
 // Default constructor
@@ -104,7 +106,9 @@ fFiducialR(3.),
 fFiducialZ(30.),
 fnSigmaForUi00(1.5),
 fAlgo(1),
-fAlgoIter0(4)
+fAlgoIter0(4),
+fSelectOnTOFBunchCrossing(kFALSE), 
+fKeepAlsoUnflaggedTOFBunchCrossing(kTRUE)
 {
 //
 // Standard constructor
@@ -197,6 +201,12 @@ AliESDVertex* AliVertexerTracks::FindPrimaryVertex(const AliVEvent *vEvent)
        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++;
index 4730e28aff5107b0105b9d18c0caf3726ae608a9..2610077a6e85e2f4c7e8dcba18969237ef24431b 100644 (file)
@@ -107,6 +107,7 @@ class AliVertexerTracks : public TObject {
     { 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);
@@ -179,13 +180,14 @@ class AliVertexerTracks : public TObject {
   //         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