]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Moved track cuts to base class
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Apr 2010 21:58:27 +0000 (21:58 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Apr 2010 21:58:27 +0000 (21:58 +0000)
PWG3/vertexingHF/AliAnalysisVertexingHF.cxx
PWG3/vertexingHF/AliRDHFCuts.cxx
PWG3/vertexingHF/AliRDHFCuts.h
PWG3/vertexingHF/AliRDHFCutsD0toKpi.cxx
PWG3/vertexingHF/AliRDHFCutsD0toKpi.h

index 2ccff8f9354bcfa91df54725221bfda359d01c11..ebbf5a9536a777e47c9305912bed378a64ad3554 100644 (file)
@@ -280,6 +280,7 @@ void AliAnalysisVertexingHF::FindCandidates(AliVEvent *event,
   AliESDtrack *negtrack1 = 0;
   AliESDtrack *negtrack2 = 0;
   AliESDtrack *trackPi   = 0;
+  //Double_t dcaMax = fCutsD0toKpi->GetDCACut();
   Double_t dcaMax = fD0toKpiCuts[1];
   if(dcaMax < fBtoJPSICuts[1]) dcaMax=fBtoJPSICuts[1];
   if(dcaMax < fDplusCuts[11])  dcaMax=fDplusCuts[11];
@@ -298,6 +299,8 @@ void AliAnalysisVertexingHF::FindCandidates(AliVEvent *event,
     return;
   }
     
+  // event selection
+  //if(!fCutsD0toKpi->IsEventSelected(event)) return;
   const AliVVertex *primary = event->GetPrimaryVertex();
   if(!primary) {
     AliDebug(1," No primary vertex from tracks");
index b515bdce6654998aa63875b20651500cfa57f94e..00d87364e819e6567c62b2152e6a59c162815fe4 100644 (file)
@@ -28,6 +28,8 @@
 #include "AliVVertex.h"
 #include "AliESDVertex.h"
 #include "AliAODVertex.h"
+#include "AliESDtrack.h"
+#include "AliAODTrack.h"
 #include "AliESDtrackCuts.h"
 #include "AliAODRecoDecayHF.h"
 #include "AliRDHFCuts.h"
@@ -83,54 +85,11 @@ AliRDHFCuts::AliRDHFCuts(const AliRDHFCuts &source) :
   //
   cout<<"Copy constructor"<<endl;
   if(source.GetTrackCuts()) AddTrackCuts(source.GetTrackCuts());
-  /*
-  if(source.GetPtBinLimits()) SetPtBins(source.fnPtBinLimits,source.GetPtBinLimits());
-  if(source.GetVarNames()) SetVarNames(source.fnVars,source.GetVarNames(),source.GetIsUpperCut());
-  */
   if(source.fPtBinLimits) SetPtBins(source.fnPtBinLimits,source.fPtBinLimits);
   if(source.fVarNames) SetVarNames(source.fnVars,source.fVarNames,source.fIsUpperCut);
   if(source.fCutsRD) SetCuts(source.fGlobalIndex,source.fCutsRD);
   if(source.fVarsForOpt) SetVarsForOpt(source.fnVarsForOpt,source.fVarsForOpt);
   PrintAll();
-  /*
-  if (source.fCutsRD){
-    fCutsRD = new Float_t*[fnVars];
-    
-    for(Int_t iv=0; iv<fnVars; iv++) {
-      
-      fCutsRD[iv] = new Float_t[fnPtBins];
-      
-      for(Int_t ib=0; ib<fnPtBins; ib++) {
-       
-       fCutsRD[iv][ib] = source.fCutsRD[iv][ib];
-      }
-    }
-  }
-  */
-  /*
-  Float_t** cutsRD=0;
-  
-  cutsRD=new Float_t*[source.fnVars];
-  for (Int_t iv=0;iv<source.fnVars;iv++){
-    cutsRD[iv]=new Float_t[source.fnPtBins];
-  }
-  source.GetCuts(source.fnVars,source.fnPtBins,cutsRD);
-
-  //if(source.GetCuts())SetCuts(source.fnVars,source.fnPtBins,source.GetCuts());
-  
-  for(Int_t iv=0; iv<source.fnVars; iv++) {
-
-    for(Int_t ib=0; ib<source.fnPtBins; ib++) {
-      cout<<"fCutsRD["<<iv<<"]["<<ib<<"] = "<<fCutsRD[iv][ib]<<endl;
-      //cutsRD[iv][ib] = fCutsRD[iv][ib];
-      //cout<<"cutsRD["<<iv<<"]["<<ib<<"] = "<<cutsRD[iv][ib]<<endl;
-    }
-  }
-  
-  if(cutsRD) SetCuts(source.fnVars,source.fnPtBins,cutsRD);
- */  
-  //if(source.GetVarsForOpt()) SetVarsForOpt(source.fnVars,source.GetVarsForOpt());
 
 }
 //--------------------------------------------------------------------------
@@ -159,25 +118,6 @@ AliRDHFCuts &AliRDHFCuts::operator=(const AliRDHFCuts &source)
   if(source.fVarsForOpt) SetVarsForOpt(source.fnVarsForOpt,source.fVarsForOpt);
   PrintAll();
 
-  /*
-  if(source.GetTrackCuts()) AddTrackCuts(source.GetTrackCuts());
-
-  if(source.GetPtBinLimits()) SetPtBins(source.fnPtBinLimits,source.GetPtBinLimits());
-  if(source.GetVarNames()) SetVarNames(source.fnVars,source.GetVarNames(),source.GetIsUpperCut());
-  */
-/*
-  Float_t** cutsRD;
-  cutsRD=new Float_t*[source.fnVars];
-  for (Int_t iv=0;iv<source.fnVars;iv++){
-    cutsRD[iv]=new Float_t[source.fnPtBins];
-  }
-  source.GetCuts(source.fnVars,source.fnPtBins,cutsRD);
-
-  if(cutsRD) SetCuts(source.fnVars,source.fnPtBins,cutsRD);
-*/
-  //if(source.GetCuts()) SetCuts(source.fnVars,source.fnPtBins,source.GetCuts());
-  //if(source.GetVarsForOpt()) SetVarsForOpt(source.fnVars,source.GetVarsForOpt());
-
   return *this;
 }
 //--------------------------------------------------------------------------
@@ -200,7 +140,7 @@ Bool_t AliRDHFCuts::IsEventSelected(AliVEvent *event) const {
   //
   // Event selection
   // 
-  if(fTriggerMask && event->GetTriggerMask()!=fTriggerMask) return kFALSE;
+  //if(fTriggerMask && event->GetTriggerMask()!=fTriggerMask) return kFALSE;
 
   // multiplicity cuts no implemented yet
 
@@ -217,6 +157,30 @@ Bool_t AliRDHFCuts::IsEventSelected(AliVEvent *event) const {
   return kTRUE;
 }
 //---------------------------------------------------------------------------
+Bool_t AliRDHFCuts::AreDaughtersSelected(AliAODRecoDecayHF *d) const {
+  //
+  // Daughter tracks selection
+  // 
+  Int_t ndaughters = d->GetNDaughters();
+  AliESDtrack* esdTrack=0;
+
+  for(Int_t idg=0; idg<ndaughters; idg++) {
+    AliAODTrack *dgTrack = (AliAODTrack*)d->GetDaughter(idg);
+    if(!dgTrack) return kFALSE;
+    //printf("charge %d\n",dgTrack->Charge());
+    if(dgTrack->Charge()==0) continue; // it's not a track, but a V0
+    // convert to ESD track here
+    esdTrack=new AliESDtrack(dgTrack); 
+    
+    if(!fTrackCuts->IsSelected(esdTrack)) {
+      delete esdTrack; esdTrack=0;
+      return kFALSE;       
+    }
+    delete esdTrack; esdTrack=0;
+  }
+  return kTRUE;
+}
+//---------------------------------------------------------------------------
 void AliRDHFCuts::SetPtBins(Int_t nPtBinLimits,Float_t *ptBinLimits) {
   // Set the pt bins
 
@@ -399,7 +363,6 @@ void AliRDHFCuts::GetCuts(Float_t**& cutsRD) const{
 //     return;
 //   }
   cout<<"Give back a "<<fnVars<<"x"<<fnPtBins<<" matrix."<<endl;
-  //cutsRD=fCutsRD;
 
   if(!cutsRD) {
     cout<<"Initialization..."<<endl;
@@ -409,13 +372,13 @@ void AliRDHFCuts::GetCuts(Float_t**& cutsRD) const{
     }
   }
   
-  cout<<"Ptr cuts rd "<<cutsRD<<endl;
+
   Int_t iGlobal=0;
   for(Int_t iv=0; iv<fnVars; iv++) {
     for(Int_t ib=0; ib<fnPtBins; ib++) {
-      //cout<<"fCutsRD["<<iv<<"]["<<ib<<"] = "<<fCutsRD[iv][ib]<<endl;
+
       cutsRD[iv][ib] = fCutsRD[iGlobal];
-      //cout<<"cutsRD["<<iv<<"]["<<ib<<"] = "<<cutsRD[iv][ib]<<endl;
+
       iGlobal++;
     }
   }
@@ -424,6 +387,9 @@ void AliRDHFCuts::GetCuts(Float_t**& cutsRD) const{
 
 //---------------------------------------------------------------------------
 Int_t AliRDHFCuts::GetGlobalIndex(Int_t iVar,Int_t iPtBin) const{
+
+  // give the global index from variable and pt bin
+
   return iPtBin*fnVars+iVar;
 }
 
index 20787717495b5ce0537264c7c05fdfbe1c45dccb..23d353ec574f6bfbdcf5beb1d15cba49bd0c357c 100644 (file)
@@ -53,11 +53,12 @@ class AliRDHFCuts : public AliAnalysisCuts
   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) = 0;
   Int_t   GetGlobalIndex(Int_t iVar,Int_t iPtBin) const;
   void    GetVarPtIndex(Int_t iGlob, Int_t& iVar, Int_t& iPtBin) const;
-  Float_t GetMassCut(Int_t iPtBin=0) const { return (fCutsRD ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
 
   Bool_t IsSelected(TObject *obj) {return IsSelected(obj,AliRDHFCuts::kAll);}
   Bool_t IsSelected(TList *list) {if(!list) return kTRUE; return kFALSE;}
   Bool_t IsEventSelected(AliVEvent *event) const;
+  Bool_t AreDaughtersSelected(AliAODRecoDecayHF *rd) const;
+
   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel) = 0;
 
   Int_t PtBin(Double_t pt) const;
index b5a48d5e1ed99f0f0897238d40a24e992be3d3c2..a79c7e306e13a36e2af15fb2b46a6cf2ef3268ad 100644 (file)
@@ -100,9 +100,6 @@ void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int
   // Fills in vars the values of the variables 
   //
 
-  cout<<"Ingetvarforopt"<<endl;
-  //PrintAll();
-
   if(nvars!=fnVarsForOpt) {
     printf("AliRDHFCutsD0toKpi::GetCutsVarsForOpt: wrong number of variables\n");
     return;
@@ -122,7 +119,6 @@ void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int
   return;
 */
  
-  //possibile generalizzazione
   Int_t iter=-1;
   if(fVarsForOpt[0]){
     iter++;
@@ -199,38 +195,25 @@ Int_t AliRDHFCutsD0toKpi::IsSelected(TObject* obj,Int_t selectionLevel) {
 
   if(!fCutsRD){
     cout<<"Cut matrice not inizialized. Exit..."<<endl;
-    return -1;
+    return 0;
   }
   //PrintAll();
-  AliAODRecoDecayHF2Prong* d=(AliAODRecoDecayHF2Prong*)obj; // ????
+  AliAODRecoDecayHF2Prong* d=(AliAODRecoDecayHF2Prong*)obj;
 
-  Int_t returnvalue=1;
   if(!d){
     cout<<"AliAODRecoDecayHF2Prong null"<<endl;
     return 0;
   }
 
+
   // selection on daughter tracks 
   if(selectionLevel==AliRDHFCuts::kAll || 
      selectionLevel==AliRDHFCuts::kTracks) {
-    Int_t ndaughters = d->GetNDaughters();
-    //cout<<"loop on "<<ndaughters<<"daughters"<<endl;
-    for(Int_t idg=0; idg<ndaughters; idg++) {
-      AliAODTrack *dgTrack = (AliAODTrack*)d->GetDaughter(idg);
-      if(!dgTrack) returnvalue=0;
-      //printf("charge %d\n",dgTrack->Charge());
-      if(dgTrack->Charge()==0) continue; // it's not a track, but a V0
-      // convert to ESD track here
-      AliESDtrack* esdTrack=new AliESDtrack(dgTrack); 
-      
-      if(!fTrackCuts->IsSelected(esdTrack)) returnvalue=0;//kFALSE;       
-    }
-    if(!returnvalue) return 0;
+    if(!AreDaughtersSelected(d)) return 0;
   }
 
 
-
-  //cout<<"cand sel? "<<selectionLevel<<" = "<<AliRDHFCuts::kAll<<" or "<<AliRDHFCuts::kCandidate<<endl;
+  Int_t returnvalue=1;
 
   // selection on candidate
   if(selectionLevel==AliRDHFCuts::kAll || 
index 3952d910cab038dc6f41a718bfff7cfe9320739d..93985f5b2a4bc9aed7d6f9be1fcf473c909738ac 100644 (file)
@@ -26,12 +26,14 @@ class AliRDHFCutsD0toKpi : public AliRDHFCuts
 
   using AliRDHFCuts::IsSelected;
   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
+  
+  Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
+  Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
 
  protected:
 
 
-  ClassDef(AliRDHFCutsD0toKpi,1);  // class for cuts on AOD reconstructed 
-                                   // D0->Kpi
+  ClassDef(AliRDHFCutsD0toKpi,1);  // class for cuts on AOD reconstructed D0->Kpi
 };
 
 #endif