Modifications in Lc->V0+P analysis (Levente):
authorfprino <fprino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Nov 2012 14:41:21 +0000 (14:41 +0000)
committerfprino <fprino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 19 Nov 2012 14:41:21 +0000 (14:41 +0000)
*** ConfigVertexingHF... -s are updated with:
- vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s); //Note that all V)s are enabled
- cutsArrayLctoV0 extended from [9] to [10] last number controls the V0s, but currently set to all V0s

*** AliRDHFCutsLctoV0 updated with
- new data member: fV0Type
- and corresponding getter

*** AliAnalysisVertexingHF
- check consistency of AliAnalysisVertexingHF and analysis task(s) settings
- V0 filtering fro cascade vertex reconstruction

*** AliRDHFCuts - contains the steering of the V0s:
enum EV0sel  {kAllV0s = 0, kOnlyOfflineV0s = 1, kOnlyOnTheFlyV0s = 2};

16 files changed:
PWGHF/vertexingHF/AliAnalysisVertexingHF.cxx
PWGHF/vertexingHF/AliAnalysisVertexingHF.h
PWGHF/vertexingHF/AliRDHFCuts.h
PWGHF/vertexingHF/AliRDHFCutsLctoV0.cxx
PWGHF/vertexingHF/AliRDHFCutsLctoV0.h
PWGHF/vertexingHF/ConfigVertexingHF.C
PWGHF/vertexingHF/ConfigVertexingHF_ITSUpgrade.C
PWGHF/vertexingHF/ConfigVertexingHF_ITSUpgrade_16var.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent_NoLS.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent_NoLS_16var.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent_NoLS_NoDstar.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent_NoLS_NoDstar_16var.C
PWGHF/vertexingHF/ConfigVertexingHF_Pb_Cent2080.C
PWGHF/vertexingHF/ConfigVertexingHF_highmult.C
PWGHF/vertexingHF/ConfigVertexingHF_pp_LambdaC.C

index 0bbd94c..66cf3b8 100644 (file)
@@ -109,6 +109,7 @@ fCutsDStartoKpipi(0x0),
 fListOfCuts(0x0),
 fFindVertexForDstar(kTRUE),
 fFindVertexForCascades(kTRUE),
+fV0TypeForCascadeVertex(0),
 fMassCutBeforeVertexing(kFALSE),
 fMassCalc2(0),
 fMassCalc3(0),
@@ -181,6 +182,7 @@ fCutsDStartoKpipi(source.fCutsDStartoKpipi),
 fListOfCuts(source.fListOfCuts),
 fFindVertexForDstar(source.fFindVertexForDstar),
 fFindVertexForCascades(source.fFindVertexForCascades),
+fV0TypeForCascadeVertex(source.fV0TypeForCascadeVertex),
 fMassCutBeforeVertexing(source.fMassCutBeforeVertexing),
 fMassCalc2(source.fMassCalc2),
 fMassCalc3(source.fMassCalc3),
@@ -250,6 +252,7 @@ AliAnalysisVertexingHF &AliAnalysisVertexingHF::operator=(const AliAnalysisVerte
   fListOfCuts = source.fListOfCuts;
   fFindVertexForDstar = source.fFindVertexForDstar;
   fFindVertexForCascades = source.fFindVertexForCascades;
+  fV0TypeForCascadeVertex = source.fV0TypeForCascadeVertex;
   fMassCutBeforeVertexing = source.fMassCutBeforeVertexing;
   fMassCalc2 = source.fMassCalc2;
   fMassCalc3 = source.fMassCalc3;
@@ -334,6 +337,10 @@ TList *AliAnalysisVertexingHF::FillListOfCuts() {
     list->Add(cutsDStartoKpipi);
   }
   
+  //___ Check consitstency of cuts between vertexer and analysis tasks
+  Bool_t bCutsOk = CheckCutsConsistency();
+  if (bCutsOk == kFALSE) {AliFatal("AliAnalysisVertexingHF::FillListOfCuts vertexing and the analysis task cuts are not consistent!");}
+
   // keep a pointer to the list
   fListOfCuts = list;
 
@@ -571,6 +578,11 @@ void AliAnalysisVertexingHF::FindCandidates(AliVEvent *event,
        if ( (!v0 || !v0->IsA()->InheritsFrom("AliAODv0") ) && 
             (!esdV0 || !esdV0->IsA()->InheritsFrom("AliESDv0") ) ) continue;
        
+       if ( v0 && ((v0->GetOnFlyStatus() == kTRUE  && fV0TypeForCascadeVertex == AliRDHFCuts::kOnlyOfflineV0s) ||
+                    (v0->GetOnFlyStatus() == kFALSE && fV0TypeForCascadeVertex == AliRDHFCuts::kOnlyOnTheFlyV0s)) ) continue;
+
+        if ( esdV0 && ((esdV0->GetOnFlyStatus() == kTRUE  && fV0TypeForCascadeVertex == AliRDHFCuts::kOnlyOfflineV0s) ||
+                      ( esdV0->GetOnFlyStatus() == kFALSE && fV0TypeForCascadeVertex == AliRDHFCuts::kOnlyOnTheFlyV0s)) ) continue;
 
        // Get the tracks that form the V0
        //  ( parameters at primary vertex )
@@ -2766,3 +2778,22 @@ void AliAnalysisVertexingHF::SetMasses(){
   fMassDstar=TDatabasePDG::Instance()->GetParticle(413)->Mass();
   fMassJpsi=TDatabasePDG::Instance()->GetParticle(443)->Mass();
 }
+//-----------------------------------------------------------------------------
+Bool_t AliAnalysisVertexingHF::CheckCutsConsistency(){
+  //
+  // Check the Vertexer and the analysts task consitstecny
+  //
+
+
+  //___ Check if the V0 type from AliRDHFCutsLctoV0 is the same as the one set in the ConfigVertexingHF.C for AliAnalysisVertexingHF
+
+
+  if ( fCutsLctoV0 && fV0TypeForCascadeVertex != fCutsLctoV0->GetV0Type())
+  {
+    printf("ERROR: V0 type doesn not match in AliAnalysisVertexingHF (%d) required in AliRDHFCutsLctoV0 (%d)\n",fV0TypeForCascadeVertex,fCutsLctoV0->GetV0Type());
+    return kFALSE;
+  }
+  return kTRUE;
+}
+//-----------------------------------------------------------------------------
+
index 57c049c..02d1f62 100644 (file)
@@ -101,6 +101,10 @@ class AliAnalysisVertexingHF : public TNamed {
   Bool_t GetRmTrksFromPrimVtx() const {return fRmTrksFromPrimVtx;}
   void SetFindVertexForDstar(Bool_t vtx=kTRUE) { fFindVertexForDstar=vtx; }
   void SetFindVertexForCascades(Bool_t vtx=kTRUE) { fFindVertexForCascades=vtx; }
+
+  void  SetV0TypeForCascadeVertex(Int_t type) {fV0TypeForCascadeVertex = type;}
+  Int_t GetV0TypeForCascadeVertex()           { return fV0TypeForCascadeVertex;}
+  
   void SetRecoPrimVtxSkippingTrks() 
     { fRecoPrimVtxSkippingTrks=kTRUE; fRmTrksFromPrimVtx=kFALSE;}
   void UnsetRecoPrimVtxSkippingTrks()
@@ -158,6 +162,8 @@ class AliAnalysisVertexingHF : public TNamed {
   void SetMassCutBeforeVertexing(Bool_t flag) { fMassCutBeforeVertexing=flag; } 
 
   void SetMasses();
+  Bool_t CheckCutsConsistency();
+
   void SetUseKaonPIDfor3Prong(Bool_t opt=kTRUE){fUseKaonPIDfor3Prong=opt;}
   void SetnSigmaTOFforKaonSel(Double_t nsl, Double_t nsh){
     fnSigmaTOFKaonLow=nsl; fnSigmaTOFKaonHi=nsh;}
@@ -220,6 +226,7 @@ class AliAnalysisVertexingHF : public TNamed {
   TList *fListOfCuts;    // pointer to list of cuts for output file
   Bool_t fFindVertexForDstar; // reconstruct a secondary vertex or assume it's from the primary vertex
   Bool_t fFindVertexForCascades;  // reconstruct a secondary vertex or assume it's from the primary vertex
+  Int_t  fV0TypeForCascadeVertex;  // Select which V0 type we want to use for the cascas
   Bool_t fMassCutBeforeVertexing; // to go faster in PbPb
   // dummies for invariant mass calculation
   AliAODRecoDecay *fMassCalc2; // for 2 prong
@@ -307,7 +314,7 @@ class AliAnalysisVertexingHF : public TNamed {
                                  TObjArray *twoTrackArrayV0);
 
   //
-  ClassDef(AliAnalysisVertexingHF,21);  // Reconstruction of HF decay candidates
+  ClassDef(AliAnalysisVertexingHF,22);  // Reconstruction of HF decay candidates
 };
 
 
index ebd1ec1..2f81ac0 100644 (file)
@@ -30,6 +30,8 @@ class AliRDHFCuts : public AliAnalysisCuts
   enum EPileup {kNoPileupSelection,kRejectPileupEvent,kRejectTracksFromPileupVertex};
   enum ESele {kD0toKpiCuts,kD0toKpiPID,kD0fromDstarCuts,kD0fromDstarPID,kDplusCuts,kDplusPID,kDsCuts,kDsPID,kLcCuts,kLcPID,kDstarCuts,kDstarPID};
   enum ERejBits {kNotSelTrigger,kNoVertex,kTooFewVtxContrib,kZVtxOutFid,kPileupSPD,kOutsideCentrality,kPhysicsSelection,kBadSPDVertex,kZVtxSPDOutFid,kCentralityFlattening};
+  enum EV0sel  {kAllV0s = 0, kOnlyOfflineV0s = 1, kOnlyOnTheFlyV0s = 2};
+
   AliRDHFCuts(const Char_t* name="RDHFCuts", const Char_t* title="");
   
   virtual ~AliRDHFCuts();
@@ -323,7 +325,7 @@ class AliRDHFCuts : public AliAnalysisCuts
   Bool_t fUseTrackSelectionWithFilterBits; // flag to enable/disable the check on filter bits
   TH1F *fHistCentrDistr;   // histogram with reference centrality distribution for centrality distribution flattening
 
-  ClassDef(AliRDHFCuts,28);  // base class for cuts on AOD reconstructed heavy-flavour decays
+  ClassDef(AliRDHFCuts,29);  // base class for cuts on AOD reconstructed heavy-flavour decays
 };
 
 #endif
index be2d818..13938f2 100644 (file)
@@ -41,20 +41,21 @@ using std::endl;
 ClassImp(AliRDHFCutsLctoV0)
 
 //--------------------------------------------------------------------------
-  AliRDHFCutsLctoV0::AliRDHFCutsLctoV0(const char* name, Short_t /*v0channel*/) : 
+  AliRDHFCutsLctoV0::AliRDHFCutsLctoV0(const char* name, Short_t /*v0channel*/) :
   AliRDHFCuts(name),
   fPidSelectionFlag(0),
   fPidHFV0pos(0),
   fPidHFV0neg(0),
-  fV0daughtersCuts(0)
+  fV0daughtersCuts(0),
+  fV0Type(0)
 {
   //
   // Default Constructor
   //
 
-  Int_t nvars=9;
+  const Int_t nvars=10;
   SetNVars(nvars);
-  TString varNames[9]={"inv. mass if K0S [GeV/c2]",
+  TString varNames[nvars]={"inv. mass if K0S [GeV/c2]",
                       "inv. mass if Lambda [GeV/c2]",
                       "inv. mass V0 if K0S [GeV/c2]",
                       "inv. mass V0 if Lambda [GeV/c2]",
@@ -62,19 +63,23 @@ ClassImp(AliRDHFCutsLctoV0)
                       "pT min V0-positive track [GeV/c]",
                       "pT min V0-negative track [GeV/c]",
                       "dca cascade cut [cm]",
-                      "dca V0 cut [cm]"};
+                      "dca V0 cut [cm]",
+               "V0 type"
+                        };
 
-  Bool_t isUpperCut[9]={kTRUE,
-                       kTRUE, 
-                       kTRUE, 
+  Bool_t isUpperCut[nvars]={kTRUE,
+                       kTRUE,
+                       kTRUE,
                        kTRUE,
                        kFALSE,
                        kFALSE,
                        kFALSE,
                        kTRUE,
-                       kTRUE};
+                       kTRUE,
+            kTRUE
+                        };
   SetVarNames(nvars,varNames,isUpperCut);
-  Bool_t forOpt[9]={kFALSE,
+  Bool_t forOpt[nvars]={kFALSE,
                    kFALSE,
                    kTRUE,
                    kTRUE,
@@ -82,8 +87,10 @@ ClassImp(AliRDHFCutsLctoV0)
                    kTRUE,
                    kTRUE,
                    kTRUE,
-                   kTRUE};
-  SetVarsForOpt(9,forOpt); // It was 5: why only 5? And which ones?
+                   kTRUE,
+            kTRUE
+                    };
+  SetVarsForOpt(nvars,forOpt); // It was 5: why only 5? And which ones?
 
   Float_t limits[2]={0,999999999.};
   SetPtBins(2,limits);
@@ -109,7 +116,9 @@ AliRDHFCutsLctoV0::AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0 &source) :
   fPidSelectionFlag(0),
   fPidHFV0pos(0),
   fPidHFV0neg(0),
-  fV0daughtersCuts(0)/*
+  fV0daughtersCuts(0),
+  fV0Type(0)
+    /*
                       fV0channel(source.fV0channel)*/
 {
   //
@@ -144,7 +153,7 @@ AliRDHFCutsLctoV0 &AliRDHFCutsLctoV0::operator=(const AliRDHFCutsLctoV0 &source)
     delete fV0daughtersCuts;
     fV0daughtersCuts = new AliESDtrackCuts(*(source.fV0daughtersCuts));
 
-    //fV0channel = source.fV0channel;
+    fV0Type  = source.fV0Type;
 
   }
 
@@ -156,7 +165,7 @@ AliRDHFCutsLctoV0 &AliRDHFCutsLctoV0::operator=(const AliRDHFCutsLctoV0 &source)
 AliRDHFCutsLctoV0::~AliRDHFCutsLctoV0() {
  //
  //  // Default Destructor
- //   
+ //
 
  if (fPidHFV0pos) {
   delete fPidHFV0pos;
@@ -176,8 +185,8 @@ AliRDHFCutsLctoV0::~AliRDHFCutsLctoV0() {
 
 //---------------------------------------------------------------------------
 void AliRDHFCutsLctoV0::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {
-  // 
-  // Fills in vars the values of the variables 
+  //
+  // Fills in vars the values of the variables
   //
 
   if (pdgdaughters[0]==-9999) return; // dummy
@@ -193,7 +202,7 @@ void AliRDHFCutsLctoV0::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_
   AliAODTrack *bachelorTrack = (AliAODTrack*)dd->GetBachelor();
   AliAODv0 *v0 = (AliAODv0*)dd->Getv0();
   AliAODTrack *v0positiveTrack = (AliAODTrack*)dd->Getv0PositiveTrack();
-  AliAODTrack *v0negativeTrack = (AliAODTrack*)dd->Getv0NegativeTrack(); 
+  AliAODTrack *v0negativeTrack = (AliAODTrack*)dd->Getv0NegativeTrack();
 
   Int_t iter=-1;
   // cut on cascade mass, if K0S + p
@@ -250,7 +259,7 @@ void AliRDHFCutsLctoV0::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_
     iter++;
     vars[iter]=dd->GetDCA(); // prong-to-prong DCA
   }
+
   // cut on V0 dca
   if (fVarsForOpt[8]) {
     iter++;
@@ -296,16 +305,18 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
     return 0;
   }
 
+
+
   // Get the V0 daughter tracks
   AliAODTrack *v0positiveTrack = (AliAODTrack*)d->Getv0PositiveTrack();
-  AliAODTrack *v0negativeTrack = (AliAODTrack*)d->Getv0NegativeTrack(); 
+  AliAODTrack *v0negativeTrack = (AliAODTrack*)d->Getv0NegativeTrack();
   if (!v0positiveTrack || !v0negativeTrack ) {
     AliDebug(2,"No V0 daughters' objects");
     return 0;
   }
 
-  // selection on daughter tracks 
-  if (selectionLevel==AliRDHFCuts::kAll || 
+  // selection on daughter tracks
+  if (selectionLevel==AliRDHFCuts::kAll ||
       selectionLevel==AliRDHFCuts::kTracks) {
 
     if (fIsCandTrackSPDFirst && d->Pt()<fMaxPtCandTrackSPDFirst) {
@@ -327,12 +338,12 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
   Bool_t okK0spipi=kTRUE, okLppi=kTRUE, okLBarpip=kTRUE;
 
   // selection on candidate
-  if (selectionLevel==AliRDHFCuts::kAll || 
+  if (selectionLevel==AliRDHFCuts::kAll ||
       selectionLevel==AliRDHFCuts::kCandidate) {
 
     Double_t pt = d->Pt();
     Int_t ptbin = PtBin(pt);
-    
+
     Double_t mLcPDG  = TDatabasePDG::Instance()->GetParticle(4122)->Mass();
     Double_t mk0sPDG = TDatabasePDG::Instance()->GetParticle(310)->Mass();
     Double_t mLPDG   = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
@@ -341,7 +352,7 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
     Double_t mk0s    = v0->MassK0Short();
     Double_t mLck0sp = d->InvMassLctoK0sP();
 
-    // Lambda + pi 
+    // Lambda + pi
     Double_t mlambda  = v0->MassLambda();
     Double_t malambda = v0->MassAntiLambda();
     Double_t mLcLpi   = d->InvMassLctoLambdaPi();
@@ -353,7 +364,7 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
     }
 
     // cuts on the V0 mass: K0S case
-    if (TMath::Abs(mk0s-mk0sPDG)>fCutsRD[GetGlobalIndex(2,ptbin)]) { 
+    if (TMath::Abs(mk0s-mk0sPDG)>fCutsRD[GetGlobalIndex(2,ptbin)]) {
       okK0spipi = kFALSE;
       AliDebug(4,Form(" V0 mass is %2.2e and does not correspond to K0S cut",mk0s));
     }
@@ -382,7 +393,7 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
 
     if (!okLck0sp && !okLcLpi && !okLcLBarpi) return 0;
 
-    // cuts on the minimum pt of the tracks 
+    // cuts on the minimum pt of the tracks
     if (TMath::Abs(bachelorTrack->Pt()) < fCutsRD[GetGlobalIndex(4,ptbin)]) {
       AliDebug(4,Form(" bachelor track Pt=%2.2e > %2.2e",bachelorTrack->Pt(),fCutsRD[GetGlobalIndex(4,ptbin)]));
       return 0;
@@ -432,8 +443,8 @@ Int_t AliRDHFCutsLctoV0::IsSelected(TObject* obj,Int_t selectionLevel) {
   Int_t returnvaluePID = 7;
 
   // selection on candidate
-  if (selectionLevel==AliRDHFCuts::kAll || 
-      //selectionLevel==AliRDHFCuts::kCandidate || 
+  if (selectionLevel==AliRDHFCuts::kAll ||
+      //selectionLevel==AliRDHFCuts::kCandidate ||
       selectionLevel==AliRDHFCuts::kPID )
     returnvaluePID = IsSelectedPID(d);
 
@@ -595,7 +606,7 @@ Int_t AliRDHFCutsLctoV0::IsSelectedSingleCut(TObject* obj, Int_t selectionLevel,
   }
 
   // not used
-  //if ( fUseTrackSelectionWithFilterBits && 
+  //if ( fUseTrackSelectionWithFilterBits &&
   //!(bachelorTrack->TestFilterMask(BIT(4))) ) return 0;
 
   AliAODv0 *v0 = (AliAODv0*)d->Getv0();
@@ -606,14 +617,14 @@ Int_t AliRDHFCutsLctoV0::IsSelectedSingleCut(TObject* obj, Int_t selectionLevel,
 
   // Get the V0 daughter tracks
   AliAODTrack *v0positiveTrack = (AliAODTrack*)d->Getv0PositiveTrack();
-  AliAODTrack *v0negativeTrack = (AliAODTrack*)d->Getv0NegativeTrack(); 
+  AliAODTrack *v0negativeTrack = (AliAODTrack*)d->Getv0NegativeTrack();
   if (!v0positiveTrack || !v0negativeTrack ) {
     AliDebug(2,"No V0 daughters' objects");
     return 0;
   }
 
-  // selection on daughter tracks 
-  if (selectionLevel==AliRDHFCuts::kAll || 
+  // selection on daughter tracks
+  if (selectionLevel==AliRDHFCuts::kAll ||
       selectionLevel==AliRDHFCuts::kTracks) {
 
     if (fIsCandTrackSPDFirst && d->Pt()<fMaxPtCandTrackSPDFirst) {
@@ -634,7 +645,7 @@ Int_t AliRDHFCutsLctoV0::IsSelectedSingleCut(TObject* obj, Int_t selectionLevel,
   Bool_t okLck0sp=kFALSE, okLcLpi=kFALSE, okLcLBarpi=kFALSE;
 
   // selection on candidate
-  if (selectionLevel==AliRDHFCuts::kAll || 
+  if (selectionLevel==AliRDHFCuts::kAll ||
       selectionLevel==AliRDHFCuts::kCandidate) {
 
     Double_t pt = d->Pt();
@@ -648,7 +659,7 @@ Int_t AliRDHFCutsLctoV0::IsSelectedSingleCut(TObject* obj, Int_t selectionLevel,
     Double_t mk0s    = v0->MassK0Short();
     Double_t mLck0sp = d->InvMassLctoK0sP();
 
-    // Lambda + pi 
+    // Lambda + pi
     Double_t mlambda  = v0->MassLambda();
     Double_t malambda = v0->MassAntiLambda();
     Double_t mLcLpi   = d->InvMassLctoLambdaPi();
@@ -736,8 +747,8 @@ Int_t AliRDHFCutsLctoV0::IsSelectedSingleCut(TObject* obj, Int_t selectionLevel,
   Int_t returnvaluePID = 7;
 
   // selection on PID
-  if (selectionLevel==AliRDHFCuts::kAll || 
-      //selectionLevel==AliRDHFCuts::kCandidate || 
+  if (selectionLevel==AliRDHFCuts::kAll ||
+      //selectionLevel==AliRDHFCuts::kCandidate ||
       selectionLevel==AliRDHFCuts::kPID )
     returnvaluePID = IsSelectedPID(d);
   */
@@ -765,7 +776,7 @@ void AliRDHFCutsLctoV0::SetStandardCutsPP2010() {
   esdTrackCuts->SetMinNClustersITS(0);//(4); // default is 5
   esdTrackCuts->SetMinNClustersTPC(70);
   //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
-  //                                      AliESDtrackCuts::kAny); 
+  //                                      AliESDtrackCuts::kAny);
   // default is kBoth, otherwise kAny
   esdTrackCuts->SetMinDCAToVertexXY(0.);
   esdTrackCuts->SetPtRange(0.3,1.e10);
@@ -782,7 +793,7 @@ void AliRDHFCutsLctoV0::SetStandardCutsPP2010() {
   esdTrackCutsV0daughters->SetMinNClustersITS(0);//(4); // default is 5
   esdTrackCutsV0daughters->SetMinNClustersTPC(70);
   //esdTrackCutsV0daughters->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
-  //                                                 AliESDtrackCuts::kAny); 
+  //                                                 AliESDtrackCuts::kAny);
   // default is kBoth, otherwise kAny
   esdTrackCutsV0daughters->SetMinDCAToVertexXY(0.);
   esdTrackCutsV0daughters->SetPtRange(0.,1.e10);
@@ -896,10 +907,23 @@ void AliRDHFCutsLctoV0::SetStandardCutsPbPb2011() {
 
   //
   // Enable all 2011 PbPb run triggers
-  //  
+  //
   SetTriggerClass("");
   ResetMaskAndEnableMBTrigger();
   EnableCentralTrigger();
   EnableSemiCentralTrigger();
 
 }
+//-----------------------
+Int_t AliRDHFCutsLctoV0::GetV0Type(){
+
+  const Int_t nvars = this->GetNVars() ;
+  //Float_t *vArray =GetCuts();
+  //fV0Type = vArray[nvars-1];
+  fV0Type = (this->GetCuts())[nvars-1];
+  //this->GetCuts(vArray);
+  TString *sVarNames=GetVarNames();
+
+  if(sVarNames[nvars-1].Contains("V0 type")) return (Int_t)fV0Type;
+  else {AliInfo("AliRDHFCutsLctoV0 Last variable is not the Vo type!!!"); return -999;}
+}
index b6cbfa7..f5b0b16 100644 (file)
@@ -3,7 +3,7 @@
 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-/* $Id$ */ 
+/* $Id$ */
 
 //***********************************************************
 // Class AliRDHFCutsLctoV0
@@ -13,7 +13,7 @@
 #include "AliAODPidHF.h"
 #include "AliRDHFCuts.h"
 
-class AliRDHFCutsLctoV0 : public AliRDHFCuts 
+class AliRDHFCutsLctoV0 : public AliRDHFCuts
 {
  public:
 
@@ -29,18 +29,18 @@ class AliRDHFCutsLctoV0 : public AliRDHFCuts
  };
 
   AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0);
-  
+
   virtual ~AliRDHFCutsLctoV0();
 
   AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source);
-  AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source); 
+  AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source);
+
   using AliRDHFCuts::GetCutVarsForOpt;
   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
 
   using AliRDHFCuts::IsSelected;
   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
-  
+
   using AliRDHFCuts::IsSelectedPID;
   virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
 
@@ -54,6 +54,8 @@ class AliRDHFCutsLctoV0 : public AliRDHFCuts
   void SetPidSelectionFlag(Int_t a) {fPidSelectionFlag=a;}
   Int_t GetPidSelectionFlag() {return fPidSelectionFlag;}
 
+  Int_t GetV0Type();
+
   virtual void SetStandardCutsPP2010();
   virtual void SetStandardCutsPbPb2010();
   virtual void SetStandardCutsPbPb2011();
@@ -86,9 +88,11 @@ class AliRDHFCutsLctoV0 : public AliRDHFCuts
   AliAODPidHF *fPidHFV0pos;
   AliAODPidHF *fPidHFV0neg;
   AliESDtrackCuts *fV0daughtersCuts; // cuts for v0 daughters (AOD converted to ESD on the flight!)
+  Float_t     fV0Type; // V0 type -- should be defined as in AliRDHFCuts.h
+
   //UShort_t fV0channel;
 
-  ClassDef(AliRDHFCutsLctoV0,3);  // class for cuts on AOD reconstructed Lc->V0+bachelor
+  ClassDef(AliRDHFCutsLctoV0,4);  // class for cuts on AOD reconstructed Lc->V0+bachelor
 };
 
 #endif
index eaf6a6e..a650b93 100644 (file)
@@ -15,6 +15,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //vHF->SetSecVtxWithKF();
   //  vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
   //--- set cuts for single-track selection  
   //     displaced tracks
@@ -80,8 +81,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
   vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index 0825c8c..56ed5b2 100644 (file)
@@ -17,6 +17,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
   //--- set cuts for single-track selection  
   //     displaced tracks
@@ -168,8 +169,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index 06a24c0..e54f28d 100644 (file)
@@ -17,6 +17,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
   //--- set cuts for single-track selection  
   //     displaced tracks
@@ -168,8 +169,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index f3243a8..05403b2 100644 (file)
@@ -17,7 +17,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
-
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+  
   //--- set cuts for single-track selection  
   //     displaced tracks 
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
@@ -204,8 +205,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index e4e3ade..74197d4 100644 (file)
@@ -17,7 +17,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
-
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+  
   //--- set cuts for single-track selection  
   //     displaced tracks 
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
@@ -203,8 +204,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index 7291272..7ab2724 100644 (file)
@@ -17,6 +17,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
   //--- set cuts for single-track selection  
   //     displaced tracks 
@@ -203,8 +204,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index d446dee..764548a 100644 (file)
@@ -2,7 +2,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   printf("Call to AliAnalysisVertexingHF parameters setting :\n");
   vHF = new AliAnalysisVertexingHF();
+
   //--- switch-off candidates finding (default: all on)
   //vHF->SetD0toKpiOff();
   vHF->SetJPSItoEleOff();
@@ -17,9 +17,10 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
-
-  //--- set cuts for single-track selection  
-  //     displaced tracks 
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+  
+  //--- set cuts for single-track selection
+  //     displaced tracks
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCuts->SetRequireTPCRefit(kTRUE);
   esdTrackCuts->SetMinNClustersTPC(70);
@@ -47,7 +48,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
                                         AliESDtrackCuts::kAny);
   // |d0|>75 micron for pt<2GeV, no cut above 2
   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0050*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
-  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
+  esdTrackCuts->SetMaxDCAToVertexXY(1.);
   esdTrackCuts->SetMaxDCAToVertexZ(1.);
   esdTrackCuts->SetPtRange(0.5,1.e10);
   esdTrackCuts->SetEtaRange(-0.8,+0.8);
@@ -65,7 +66,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
                                         AliESDtrackCuts::kAny);
   // |d0|>75 micron for pt<2GeV, no cut above 2
   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
-  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
+  esdTrackCuts->SetMaxDCAToVertexXY(1.);
   esdTrackCuts->SetMaxDCAToVertexZ(1.);
   esdTrackCuts->SetPtRange(0.6,1.e10);
   esdTrackCuts->SetEtaRange(-0.8,+0.8);
@@ -76,7 +77,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
  //     D* soft pion tracks
   AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCutsSoftPi->SetMinNClustersITS(3);
-  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);  
+  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
   esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
   esdTrackCutsSoftPi->SetPtRange(0.1,1.e10);
   esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
@@ -144,15 +145,15 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   cutsDStartoKpipi->SetUsePID(kFALSE);
   const Int_t nvars=16;
   const Int_t nptbins=2;
-  
+
   Float_t* ptbins;
   ptbins=new Float_t[nptbins+1];
   ptbins[0]=0.;
   ptbins[1]=5.;
   ptbins[2]=999.;
-  
+
   cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
-  
+
   Float_t** rdcutsvalmine;
   rdcutsvalmine=new Float_t*[nvars];
   for(Int_t iv=0;iv<nvars;iv++){
@@ -194,7 +195,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   rdcutsvalmine[15][1]=0.;    // NormDecayLenghtXY
 
   cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
   cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
   cutsDStartoKpipi->SetMinPtCandidate(1.);
@@ -202,17 +203,19 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   //--------------------------------------------------------
 
+  
+  
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
-  // 
+  //
   //--- set this if you want to reconstruct primary vertex candidate by
-  //    candidate using other tracks in the event (for pp, broad 
+  //    candidate using other tracks in the event (for pp, broad
   //    interaction region)
   //vHF->SetRecoPrimVtxSkippingTrks();
-  //--- OR set this if you want to remove the candidate daughters from 
+  //--- OR set this if you want to remove the candidate daughters from
   //    the primary vertex, without recostructing it from scratch
   //vHF->SetRmTrksFromPrimVtx();
 
@@ -221,7 +224,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--- verbose
   //  AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
 
+
   return vHF;
 }
 
index c08da53..337c540 100644 (file)
@@ -2,7 +2,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   printf("Call to AliAnalysisVertexingHF parameters setting :\n");
   vHF = new AliAnalysisVertexingHF();
+
   //--- switch-off candidates finding (default: all on)
   //vHF->SetD0toKpiOff();
   vHF->SetJPSItoEleOff();
@@ -17,9 +17,10 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
-  //--- set cuts for single-track selection  
-  //     displaced tracks 
+  //--- set cuts for single-track selection
+  //     displaced tracks
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCuts->SetRequireTPCRefit(kTRUE);
   esdTrackCuts->SetMinNClustersTPC(70);
@@ -47,7 +48,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
                                         AliESDtrackCuts::kAny);
   // |d0|>75 micron for pt<2GeV, no cut above 2
   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0050*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
-  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
+  esdTrackCuts->SetMaxDCAToVertexXY(1.);
   esdTrackCuts->SetMaxDCAToVertexZ(1.);
   esdTrackCuts->SetPtRange(0.5,1.e10);
   esdTrackCuts->SetEtaRange(-0.8,+0.8);
@@ -65,7 +66,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
                                         AliESDtrackCuts::kAny);
   // |d0|>75 micron for pt<2GeV, no cut above 2
   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
-  esdTrackCuts->SetMaxDCAToVertexXY(1.);  
+  esdTrackCuts->SetMaxDCAToVertexXY(1.);
   esdTrackCuts->SetMaxDCAToVertexZ(1.);
   esdTrackCuts->SetPtRange(0.6,1.e10);
   esdTrackCuts->SetEtaRange(-0.8,+0.8);
@@ -76,7 +77,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
  //     D* soft pion tracks
   AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCutsSoftPi->SetMinNClustersITS(3);
-  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);  
+  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
   esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
   esdTrackCutsSoftPi->SetPtRange(0.1,1.e10);
   esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
@@ -145,15 +146,15 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   cutsDStartoKpipi->SetUsePID(kFALSE);
   const Int_t nvars=16;
   const Int_t nptbins=2;
-  
+
   Float_t* ptbins;
   ptbins=new Float_t[nptbins+1];
   ptbins[0]=0.;
   ptbins[1]=5.;
   ptbins[2]=999.;
-  
+
   cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
-  
+
   Float_t** rdcutsvalmine;
   rdcutsvalmine=new Float_t*[nvars];
   for(Int_t iv=0;iv<nvars;iv++){
@@ -195,7 +196,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   rdcutsvalmine[15][1]=0.;    // NormDecayLenghtXY
 
   cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
   cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
   cutsDStartoKpipi->SetMinPtCandidate(1.);
@@ -204,16 +205,16 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
-  // 
+  //
   //--- set this if you want to reconstruct primary vertex candidate by
-  //    candidate using other tracks in the event (for pp, broad 
+  //    candidate using other tracks in the event (for pp, broad
   //    interaction region)
   //vHF->SetRecoPrimVtxSkippingTrks();
-  //--- OR set this if you want to remove the candidate daughters from 
+  //--- OR set this if you want to remove the candidate daughters from
   //    the primary vertex, without recostructing it from scratch
   //vHF->SetRmTrksFromPrimVtx();
 
@@ -222,7 +223,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--- verbose
   //  AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
 
+
   return vHF;
 }
 
index c0627a8..f8a8e9b 100644 (file)
@@ -2,7 +2,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   printf("Call to AliAnalysisVertexingHF parameters setting :\n");
   vHF = new AliAnalysisVertexingHF();
+
   //--- switch-off candidates finding (default: all on)
   //vHF->SetD0toKpiOff();
   vHF->SetJPSItoEleOff();
@@ -16,8 +16,9 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
-  //--- set cuts for single-track selection  
+  //--- set cuts for single-track selection
   //     displaced tracks
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCuts->SetRequireTPCRefit(kTRUE);
@@ -38,7 +39,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //     D* soft pion tracks
   AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCutsSoftPi->SetMinNClustersITS(3);
-  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);  
+  esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);
   esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
   esdTrackCutsSoftPi->SetPtRange(0.1,1.e10);
   esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
@@ -105,18 +106,18 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   AliRDHFCutsDStartoKpipi *cutsDStartoKpipi = new AliRDHFCutsDStartoKpipi("CutsDStartoKpipi");
   cutsDStartoKpipi->SetUsePID(kFALSE);
-  
+
   const Int_t nvars=16;
   const Int_t nptbins=2;
-  
+
   Float_t* ptbins;
   ptbins=new Float_t[nptbins+1];
   ptbins[0]=0.;
   ptbins[1]=5.;
   ptbins[2]=999.;
-  
+
   cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
-  
+
   Float_t** rdcutsvalmine;
   rdcutsvalmine=new Float_t*[nvars];
   for(Int_t iv=0;iv<nvars;iv++){
@@ -158,7 +159,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   rdcutsvalmine[15][1]=0.;    // NormDecayLenghtXY
 
   cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
+
   cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
   cutsDStartoKpipi->SetMinPtCandidate(1.);
@@ -167,16 +168,16 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
-  // 
+  //
   //--- set this if you want to reconstruct primary vertex candidate by
-  //    candidate using other tracks in the event (for pp, broad 
+  //    candidate using other tracks in the event (for pp, broad
   //    interaction region)
   //vHF->SetRecoPrimVtxSkippingTrks();
-  //--- OR set this if you want to remove the candidate daughters from 
+  //--- OR set this if you want to remove the candidate daughters from
   //    the primary vertex, without recostructing it from scratch
   //vHF->SetRmTrksFromPrimVtx();
 
@@ -185,7 +186,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--- verbose
   //  AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
 
+
   return vHF;
 }
 
index a21a07f..6db43a3 100644 (file)
@@ -17,6 +17,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kFALSE);
   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
 
   //--- set cuts for single-track selection  
   //     displaced tracks
@@ -165,8 +166,8 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--------------------------------------------------------
 
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={4.0,4.0,2.0,2.0,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
   // 
index c2c3755..3805b5e 100644 (file)
@@ -2,7 +2,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
 
   printf("Call to AliAnalysisVertexingHF parameters setting :\n");
   vHF = new AliAnalysisVertexingHF();
+
   //--- switch-off candidates finding (default: all on)
   //vHF->SetD0toKpiOff();
   //vHF->SetJPSItoEleOff();
@@ -15,8 +15,9 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //vHF->SetSecVtxWithKF();
   //vHF->SetCascadesOff();
   vHF->SetFindVertexForCascades(kTRUE);
-
-  //--- set cuts for single-track selection  
+  vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
+  
+  //--- set cuts for single-track selection
   //     displaced tracks
   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
   esdTrackCuts->SetRequireTPCRefit(kTRUE);
@@ -80,16 +81,16 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
   vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
-  Float_t cutsArrayLctoV0[9]={1.0,1.0,0.05,0.05,0.0,0.0,0.0,1000.,1000.};
-  cutsLctoV0->SetCuts(9,cutsArrayLctoV0);
+  Float_t cutsArrayLctoV0[10]={1.0,1.0,0.05,0.05,0.0,0.0,0.0,1000.,1000.,0.0};
+  cutsLctoV0->SetCuts(10,cutsArrayLctoV0);
   cutsLctoV0->AddTrackCuts(esdTrackCuts);
   vHF->SetCutsLctoV0(cutsLctoV0);
-  // 
+  //
   //--- set this if you want to reconstruct primary vertex candidate by
-  //    candidate using other tracks in the event (for pp, broad 
+  //    candidate using other tracks in the event (for pp, broad
   //    interaction region)
   //vHF->SetRecoPrimVtxSkippingTrks();
-  //--- OR set this if you want to remove the candidate daughters from 
+  //--- OR set this if you want to remove the candidate daughters from
   //    the primary vertex, without recostructing it from scratch
   //vHF->SetRmTrksFromPrimVtx();
 
@@ -98,7 +99,7 @@ AliAnalysisVertexingHF* ConfigVertexingHF() {
   //--- verbose
   //  AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
 
+
   return vHF;
 }