]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/RESONANCES/AliRsnCutTrackQuality.cxx
Update
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutTrackQuality.cxx
index 0fae0f83df87b9ea1bb83d84959b213fd32541bd..2c18a66540f4cf7b734211e7895645779c9812e5 100644 (file)
@@ -34,9 +34,9 @@ ClassImp(AliRsnCutTrackQuality)
 //_________________________________________________________________________________________________
 AliRsnCutTrackQuality::AliRsnCutTrackQuality(const char *name) :
   AliRsnCut(name, AliRsnCut::kDaughter, 0.0, 0.0),
-  fFlagsOn(0xFFFFFFFF),
+  fFlagsOn(0x0),
   fFlagsOff(0x0),
-  fRejectKinkDaughter(kFALSE),
+  fRejectKinkDaughters(kTRUE),
   fDCARfixed(kTRUE),
   fDCARptFormula(""),
   fDCARmax(fgkVeryBig),
@@ -63,7 +63,7 @@ AliRsnCutTrackQuality::AliRsnCutTrackQuality(const AliRsnCutTrackQuality &copy)
   AliRsnCut(copy),
   fFlagsOn(copy.fFlagsOn),
   fFlagsOff(copy.fFlagsOff),
-  fRejectKinkDaughter(copy.fRejectKinkDaughter),
+  fRejectKinkDaughters(copy.fRejectKinkDaughters),
   fDCARfixed(copy.fDCARfixed),
   fDCARptFormula(copy.fDCARptFormula),
   fDCARmax(copy.fDCARmax),
@@ -96,7 +96,7 @@ AliRsnCutTrackQuality& AliRsnCutTrackQuality::operator=(const AliRsnCutTrackQual
   
   fFlagsOn = copy.fFlagsOn;
   fFlagsOff = copy.fFlagsOff;
-  fRejectKinkDaughter = copy.fRejectKinkDaughter;
+  fRejectKinkDaughters = copy.fRejectKinkDaughters;
   fDCARfixed = copy.fDCARfixed;
   fDCARptFormula = copy.fDCARptFormula;
   fDCARmax = copy.fDCARmax;
@@ -122,9 +122,9 @@ void AliRsnCutTrackQuality::DisableAll()
 // Disable all cuts
 //
   
-  fFlagsOn = 0xFFFFFFFF;
+  fFlagsOn = 0x0;
   fFlagsOff = 0x0;
-  fRejectKinkDaughter = kFALSE;
+  fRejectKinkDaughters = kFALSE;
   fDCARfixed = kTRUE;
   fDCARptFormula = "";
   fDCARmax = fgkVeryBig;
@@ -153,7 +153,10 @@ Bool_t AliRsnCutTrackQuality::IsSelected(TObject *object)
   // coherence check
   if (!TargetOK(object)) return kFALSE;
   
-  // status is checked in the same way for all tracks
+  // status is checked in the same way for all tracks, using AliVTrack
+  // as a convention, if a the collection of 'on' flags is '0x0', it 
+  // is assumed that no flags are required, and this check is skipped;
+  // for the collection of 'off' flags this is not needed
   AliVTrack *vtrack = dynamic_cast<AliVTrack*>(fDaughter->GetRef());
   if (!vtrack)
   {
@@ -163,7 +166,7 @@ Bool_t AliRsnCutTrackQuality::IsSelected(TObject *object)
   ULong_t status   = (ULong_t)vtrack->GetStatus();
   ULong_t checkOn  = status & fFlagsOn;
   ULong_t checkOff = status & fFlagsOff;
-  if (checkOn == 0)
+  if (fFlagsOn != 0x0 && checkOn != fFlagsOn)
   {
     AliDebug(AliLog::kDebug + 2, Form("Not all required flags are present: required %lx, track has %lx", fFlagsOn, status));
     return kFALSE;
@@ -217,18 +220,18 @@ Bool_t AliRsnCutTrackQuality::CheckESD(AliESDtrack *track)
     
   // longitudinal DCA cuts
   if (fDCAZfixed)
-    cuts.SetMaxDCAToVertexZ(fDCARmax);
+    cuts.SetMaxDCAToVertexZ(fDCAZmax);
   else
     cuts.SetMaxDCAToVertexZPtDep(fDCAZptFormula.Data());
     
-  // these options are always disabled in currend version
+  // these options are always disabled in current version
   cuts.SetDCAToVertex2D(kFALSE);
   cuts.SetRequireSigmaToVertex(kFALSE);
   
   // TPC related cuts for TPC+ITS tracks
   cuts.SetMinNClustersTPC(fTPCminNClusters);
   cuts.SetMaxChi2PerClusterTPC(fTPCmaxChi2);
-  cuts.SetAcceptKinkDaughters(!fRejectKinkDaughter);
+  cuts.SetAcceptKinkDaughters(!fRejectKinkDaughters);
   
   // ITS related cuts for TPC+ITS tracks
   if (fSPDminNClusters > 0)
@@ -283,7 +286,7 @@ Bool_t AliRsnCutTrackQuality::CheckAOD(AliAODTrack *track)
   
   // step #3: reject kink daughters
   AliAODVertex *vertex = track->GetProdVertex();
-  if (vertex && fRejectKinkDaughter)
+  if (vertex && fRejectKinkDaughters)
   {
     if (vertex->GetType() == AliAODVertex::kKink)
     {
@@ -352,3 +355,36 @@ Bool_t AliRsnCutTrackQuality::CheckAOD(AliAODTrack *track)
   // if we are here, all cuts were passed and no exit point was got
   return kTRUE;
 }
+
+//_________________________________________________________________________________________________
+void AliRsnCutTrackQuality::Print(const Option_t *) const
+{
+//
+// Print information on this cut
+//
+
+  AliInfo(Form("Cut name                : %s", GetName()));
+  AliInfo(Form("Required flags (off, on): %lx %lx", fFlagsOn, fFlagsOff));
+  AliInfo(Form("Ranges in eta, pt       : %.2f - %.2f, %.2f - %.2f", fEta[0], fEta[1], fPt[0], fPt[1]));
+  AliInfo(Form("Kink daughters are      : %s", (fRejectKinkDaughters ? "rejected" : "accepted")));
+  AliInfo(Form("TPC requirements        : min. cluster = %d, max chi2 = %f", fTPCminNClusters, fTPCmaxChi2));
+  AliInfo(Form("ITS requirements        : min. cluster = %d (all), %d (SPD), max chi2 = %f", fITSminNClusters, fSPDminNClusters, fITSmaxChi2));
+  
+  if (fDCARfixed)
+  {
+    AliInfo(Form("DCA r cut               : fixed to %f cm", fDCARmax));
+  }
+  else
+  {
+    AliInfo(Form("DCA r cut formula       : %s", fDCARptFormula.Data()));
+  }
+    
+  if (fDCAZfixed)
+  {
+    AliInfo(Form("DCA z cut               : fixed to %f cm", fDCAZmax));
+  }
+  else
+  {
+    AliInfo(Form("DCA z cut formula       : %s", fDCAZptFormula.Data()));
+  }
+}