]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding fiducial volume to the list of settable cuts (Andrea)
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 22 Aug 2008 09:41:25 +0000 (09:41 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 22 Aug 2008 09:41:25 +0000 (09:41 +0000)
STEER/AliVertexerTracks.cxx
STEER/AliVertexerTracks.h

index 9261650c3003fc6e9e38cf904c1889d180b943f4..92c0359ce06145ec5675ed5bf0d7f4f049d5c744 100644 (file)
@@ -55,7 +55,7 @@ fNTrksToSkip(0),
 fConstraint(kFALSE),
 fOnlyFitter(kFALSE),
 fMinTracks(1),
-fMinITSClusters(5),
+fMinClusters(5),
 fDCAcut(0.1),
 fDCAcutIter0(0.1),
 fNSigma(3.),
@@ -63,6 +63,8 @@ fMaxd0z0(0.5),
 fMinDetFitter(100.),
 fMaxTgl(1000.),
 fITSrefit(kTRUE),
+fFiducialR(3.),
+fFiducialZ(30.),
 fnSigmaForUi00(1.5),
 fDebug(0),
 fAlgo(1)
@@ -72,7 +74,6 @@ fAlgo(1)
 //
   SetVtxStart();
   SetVtxStartSigma();
-  SetITSMode();
 }
 //----------------------------------------------------------------------------
 AliVertexerTracks::AliVertexerTracks(Double_t fieldkG):
@@ -88,7 +89,7 @@ fNTrksToSkip(0),
 fConstraint(kFALSE),
 fOnlyFitter(kFALSE),
 fMinTracks(1),
-fMinITSClusters(5),
+fMinClusters(5),
 fDCAcut(0.1),
 fDCAcutIter0(0.1),
 fNSigma(3.),
@@ -96,6 +97,8 @@ fMaxd0z0(0.5),
 fMinDetFitter(100.),
 fMaxTgl(1000.),
 fITSrefit(kTRUE),
+fFiducialR(3.),
+fFiducialZ(30.),
 fnSigmaForUi00(1.5),
 fDebug(0),
 fAlgo(1)
@@ -105,7 +108,7 @@ fAlgo(1)
 //
   SetVtxStart();
   SetVtxStartSigma();
-  SetITSMode();
+  SetTPCMode();
 }
 //-----------------------------------------------------------------------------
 AliVertexerTracks::~AliVertexerTracks() 
@@ -161,10 +164,11 @@ AliESDVertex* AliVertexerTracks::FindPrimaryVertex(const AliESDEvent *esdEvent)
     }
     if(skipThis) continue;
 
+    // check number of clusters in ITS or TPC
+    if(esdt->GetNcls(fMode) < fMinClusters) continue;
+
     if(fMode==0) {        // ITS mode
       if(fITSrefit && !(esdt->GetStatus()&AliESDtrack::kITSrefit)) continue;
-      // check number of clusters in ITS
-      if(esdt->GetNcls(0)<fMinITSClusters) continue;
       Double_t x,p[5],cov[15];
       esdt->GetExternalParameters(x,p);
       esdt->GetExternalCovariance(cov);
@@ -534,7 +538,6 @@ Int_t AliVertexerTracks::PrepareTracks(TObjArray &trkArrayOrig,
   Int_t nTrksOrig = (Int_t)trkArrayOrig.GetEntriesFast();
   Int_t nTrksSel = 0;
   Double_t maxd0rphi; 
-  Double_t fiducialR = 3.0, fiducialZ = 20.0; // pipe and 1.5xSPD
   Double_t sigmaCurr[3];
   Double_t normdistx,normdisty;
   Double_t d0z0[2],covd0z0[3]; 
@@ -573,7 +576,7 @@ Int_t AliVertexerTracks::PrepareTracks(TObjArray &trkArrayOrig,
     sigmad0 = TMath::Sqrt(covd0z0[0]);
     maxd0rphi = fNSigma*sigmad0;
     if(optImpParCut==1) maxd0rphi *= 5.;
-    maxd0rphi = TMath::Min(maxd0rphi,fiducialR); 
+    maxd0rphi = TMath::Min(maxd0rphi,fFiducialR); 
     //sigmad0z0 = TMath::Sqrt(covd0z0[0]+covd0z0[2]); // for future improvement
     //maxd0z0 = 10.*fNSigma*sigmad0z0;
 
@@ -583,7 +586,7 @@ Int_t AliVertexerTracks::PrepareTracks(TObjArray &trkArrayOrig,
     //---- track selection based on impact parameters ----//
 
     // always reject tracks outside fiducial volume
-    if(TMath::Abs(d0z0[0])>fiducialR || TMath::Abs(d0z0[1])>fiducialZ) { 
+    if(TMath::Abs(d0z0[0])>fFiducialR || TMath::Abs(d0z0[1])>fFiducialZ) { 
       if(fDebug) printf("     rejected\n");
       delete track; continue; 
     }
@@ -791,11 +794,13 @@ AliESDVertex* AliVertexerTracks::RemoveTracksFromVertex(AliESDVertex *inVtx,
 void AliVertexerTracks::SetITSMode(Double_t dcacut,
                                   Double_t dcacutIter0,
                                   Double_t maxd0z0,
-                                  Int_t minITScls,
+                                  Int_t minCls,
                                   Int_t mintrks,
                                   Double_t nsigma,
                                   Double_t mindetfitter,
-                                  Double_t maxtgl) 
+                                  Double_t maxtgl,
+                                  Double_t fidR,
+                                  Double_t fidZ) 
 {
 //
 //  Cut values for ITS mode
@@ -805,11 +810,12 @@ void AliVertexerTracks::SetITSMode(Double_t dcacut,
   SetDCAcut(dcacut);
   SetDCAcutIter0(dcacutIter0);
   SetMaxd0z0(maxd0z0);
-  SetMinITSClusters(minITScls);
+  SetMinClusters(minCls);
   SetMinTracks(mintrks);
   SetNSigmad0(nsigma);
   SetMinDetFitter(mindetfitter);
   SetMaxTgl(maxtgl);
+  SetFiducialRZ(fidR,fidZ);
 
   return; 
 }
@@ -817,11 +823,13 @@ void AliVertexerTracks::SetITSMode(Double_t dcacut,
 void AliVertexerTracks::SetTPCMode(Double_t dcacut,
                                   Double_t dcacutIter0,
                                   Double_t maxd0z0,
-                                  Int_t minITScls,
+                                  Int_t minCls,
                                   Int_t mintrks,
                                   Double_t nsigma,
                                   Double_t mindetfitter,
-                                  Double_t maxtgl) 
+                                  Double_t maxtgl,
+                                  Double_t fidR,
+                                  Double_t fidZ) 
 {
 //
 //  Cut values for TPC mode
@@ -831,11 +839,12 @@ void AliVertexerTracks::SetTPCMode(Double_t dcacut,
   SetDCAcut(dcacut);
   SetDCAcutIter0(dcacutIter0);
   SetMaxd0z0(maxd0z0);
-  SetMinITSClusters(minITScls);
+  SetMinClusters(minCls);
   SetMinTracks(mintrks);
   SetNSigmad0(nsigma);
   SetMinDetFitter(mindetfitter);
   SetMaxTgl(maxtgl);
+  SetFiducialRZ(fidR,fidZ);
 
   return; 
 }
index e95a203d01856a3c927574a9122e40f39a5ad6b0..121be35ea6c39532664910a8147d4e7b4ee54a26 100644 (file)
@@ -51,19 +51,23 @@ class AliVertexerTracks : public TObject {
   void SetITSMode(Double_t dcacut=0.1,
                  Double_t dcacutIter0=0.1,
                  Double_t maxd0z0=0.5,
-                 Int_t minITScls=5,
+                 Int_t minCls=5,
                  Int_t mintrks=1,
                  Double_t nsigma=3.,
                  Double_t mindetfitter=100.,
-                 Double_t maxtgl=1000.); 
+                 Double_t maxtgl=1000.,
+                 Double_t fidR=3.,
+                 Double_t fidZ=30.); 
   void SetTPCMode(Double_t dcacut=0.1,
                  Double_t dcacutIter0=1.0,
                  Double_t maxd0z0=5.0,
-                 Int_t minITScls=0,
+                 Int_t minCls=10,
                  Int_t mintrks=1,
                  Double_t nsigma=3.,
                  Double_t mindetfitter=0.1,
-                 Double_t maxtgl=1.5); 
+                 Double_t maxtgl=1.5, 
+                 Double_t fidR=3.,
+                 Double_t fidZ=30.); 
   void  SetConstraintOff() { fConstraint=kFALSE; return; }
   void  SetConstraintOn() { fConstraint=kTRUE; return; }
   void  SetDebug(Int_t optdebug=0) { fDebug=optdebug; return; }
@@ -72,8 +76,9 @@ class AliVertexerTracks : public TObject {
   void  SetFinderAlgorithm(Int_t opt=1) { fAlgo=opt; return; }
   void  SetITSrefitRequired() { fITSrefit=kTRUE; return; }
   void  SetITSrefitNotRequired() { fITSrefit=kFALSE; return; }
+  void  SetFiducialRZ(Double_t r=3,Double_t z=30) { fFiducialR=r; fFiducialZ=z; return; }
   void  SetMaxd0z0(Double_t maxd0z0=0.5) { fMaxd0z0=maxd0z0; return; }
-  void  SetMinITSClusters(Int_t n=5) { fMinITSClusters=n; return; }
+  void  SetMinClusters(Int_t n=5) { fMinClusters=n; return; }
   void  SetMinTracks(Int_t n=1) { fMinTracks=n; return; }
   void  SetNSigmad0(Double_t n=3) { fNSigma=n; return; }
   Double_t GetNSigmad0() const { return fNSigma; }
@@ -130,7 +135,7 @@ class AliVertexerTracks : public TObject {
   Bool_t    fOnlyFitter;      // primary with one fitter shot only
                               // (use only with beam constraint)
   Int_t     fMinTracks;       // minimum number of tracks
-  Int_t     fMinITSClusters;  // minimum number of ITS clusters per track
+  Int_t     fMinClusters;     // minimum number of ITS or TPC clusters per track
   Double_t  fDCAcut;          // maximum DCA between 2 tracks used for vertex
   Double_t  fDCAcutIter0;     // maximum DCA between 2 tracks used for vertex
   Double_t  fNSigma;          // number of sigmas for d0 cut in PrepareTracks()
@@ -140,6 +145,8 @@ class AliVertexerTracks : public TObject {
   Double_t  fMaxTgl;          // maximum tgl of tracks
   Bool_t    fITSrefit;        // if kTRUE (default), use only kITSrefit tracks
                               // if kFALSE, use all tracks (also TPC only)
+  Double_t  fFiducialR;       // radius of fiducial cylinder for tracks 
+  Double_t  fFiducialZ;       // length of fiducial cylinder for tracks
   Double_t  fnSigmaForUi00;   // n. sigmas from finder in TrackToPoint
   Int_t     fDebug;           //! debug flag - verbose printing if >0
   Int_t     fAlgo;            // option for vertex finding algorythm