]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAnalysisVertexingHF.h
Updates D* cuts for peripheral PbPb events
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisVertexingHF.h
index 0146f19e1c096422d7516e07adbf68905aea78dd..d86659a6301d08aef06fa1a4d548080d3f979e02 100644 (file)
@@ -3,6 +3,8 @@
 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+/* $Id$ */ 
+
 //-------------------------------------------------------------------------
 //                      Class AliAnalysisVertexingHF
 //            Reconstruction of heavy-flavour decay candidates
 
 class TList;
 class AliESDVertex;
+class AliAODRecoDecay;
 class AliAODRecoDecayHF;
 class AliAODRecoDecayHF2Prong;
 class AliAODRecoDecayHF3Prong;
 class AliAODRecoDecayHF4Prong;
 class AliAODRecoCascadeHF;
 class AliAnalysisFilter;
+class AliRDHFCuts;
 class AliRDHFCutsD0toKpi;
 class AliRDHFCutsJpsitoee;
 class AliRDHFCutsDplustoKpipi;
@@ -56,6 +60,7 @@ class AliAnalysisVertexingHF : public TNamed {
                      TClonesArray *aodLikeSign3ProngTClArr);
 
   TList* FillListOfCuts();
+  void FixReferences(AliAODEvent *aod);  
   void PrintStatus() const;
   void SetSecVtxWithKF() { fSecVtxWithKF=kTRUE; }
   void SetD0toKpiOn() { fD0toKpi=kTRUE; }
@@ -114,7 +119,7 @@ class AliAnalysisVertexingHF : public TNamed {
   AliRDHFCutsD0toKpipipi* GetCutsD0toKpipipi() const { return fCutsD0toKpipipi; }
   void SetCutsDStartoKpipi(AliRDHFCutsDStartoKpipi* cuts) { fCutsDStartoKpipi = cuts; }
   AliRDHFCutsDStartoKpipi* GetCutsDStartoKpipi() const { return fCutsDStartoKpipi; }
-
+  void SetMassCutBeforeVertexing(Bool_t flag) { fMassCutBeforeVertexing=flag; } 
 
   //
  private:
@@ -159,10 +164,18 @@ class AliAnalysisVertexingHF : public TNamed {
   AliRDHFCutsD0toKpipipi *fCutsD0toKpipipi; // D0->Kpipipi cuts
   AliRDHFCutsDStartoKpipi *fCutsDStartoKpipi; // Dstar->D0pi cuts
 
-
   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
+  Bool_t fMassCutBeforeVertexing; // to go faster in PbPb
+  // dummies for invariant mass calculation
+  AliAODRecoDecay *fMassCalc2; // for 2 prong
+  AliAODRecoDecay *fMassCalc3; // for 3 prong
+  AliAODRecoDecay *fMassCalc4; // for 4 prong
+
+  Int_t fnTrksTotal;
+  Int_t fnSeleTrksTotal;
+
   //
   void AddRefs(AliAODVertex *v,AliAODRecoDecayHF *rd,const AliVEvent *event,
               const TObjArray *trkArray) const;
@@ -198,13 +211,16 @@ class AliAnalysisVertexingHF : public TNamed {
 
   AliAODVertex* PrimaryVertex(const TObjArray *trkArray=0x0,AliVEvent *event=0x0) const;
   AliAODVertex* ReconstructSecondaryVertex(TObjArray *trkArray,Double_t &dispersion,Bool_t useTRefArray=kTRUE) const;
-  Bool_t SelectInvMass(Int_t decay,Int_t nprongs,
+  Bool_t SelectInvMassAndPt(Int_t decay,Int_t nprongs,
                       Double_t *px,Double_t *py,Double_t *pz) const;
-  void   SelectTracksAndCopyVertex(const AliVEvent *event,
+  Bool_t SelectInvMassAndPt(TObjArray *trkArray) const;
+  void   SelectTracksAndCopyVertex(const AliVEvent *event,Int_t trkEntries,
                                   TObjArray &seleTrksArray,Int_t &nSeleTrks,
                                   UChar_t *seleFlags,Int_t *evtNumber);
   Bool_t SingleTrkCuts(AliESDtrack *trk,Bool_t &okDisplaced,Bool_t &okSoftPi) const;
 
+  void   SetSelectionBitForPID(AliRDHFCuts *cuts,AliAODRecoDecayHF *rd,Int_t bit);
+
   AliAODv0* TransformESDv0toAODv0(AliESDv0 *esdv0, 
                                  TObjArray *twoTrackArrayV0);