vertex from tracks
authorrvernet <rvernet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Mar 2009 17:32:48 +0000 (17:32 +0000)
committerrvernet <rvernet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Mar 2009 17:32:48 +0000 (17:32 +0000)
CORRFW/AliCFEventRecCuts.cxx
CORRFW/AliCFEventRecCuts.h

index e817440..25daa4b 100644 (file)
@@ -48,6 +48,7 @@ AliCFEventRecCuts::AliCFEventRecCuts() :
   fVtxNCtrbMin(0),
   fVtxNCtrbMax((Int_t)1.e9),
   fVtxTPC(0),
+  fVtxSPD(0),
   fBitMap(0x0)
 {
   //
@@ -75,6 +76,7 @@ AliCFEventRecCuts::AliCFEventRecCuts(Char_t* name, Char_t* title) :
   fVtxNCtrbMin(0),
   fVtxNCtrbMax((Int_t)1.e9),
   fVtxTPC(0),
+  fVtxSPD(0),
   fBitMap(0x0)
  {
   //
@@ -102,6 +104,7 @@ AliCFEventRecCuts::AliCFEventRecCuts(const AliCFEventRecCuts& c) :
   fVtxNCtrbMin(c.fVtxNCtrbMin),
   fVtxNCtrbMax(c.fVtxNCtrbMax),
   fVtxTPC(c.fVtxTPC),
+  fVtxSPD(c.fVtxSPD),
   fBitMap(c.fBitMap)
 {
   //
@@ -172,6 +175,7 @@ AliCFEventRecCuts& AliCFEventRecCuts::operator=(const AliCFEventRecCuts& c)
     fVtxNCtrbMin=c.fVtxNCtrbMin;
     fVtxNCtrbMax=c.fVtxNCtrbMax;
     fVtxTPC=c.fVtxTPC;
+    fVtxSPD=c.fVtxSPD;
     fBitMap=c.fBitMap;
   }
 
@@ -227,7 +231,10 @@ void AliCFEventRecCuts::SelectionBitMap(TObject* obj) {
     fBitMap->SetBitNumber(0,kFALSE); 
   
   if(fRequireVtxCuts){
-    const AliESDVertex* vtxESD = fVtxTPC ? esd->GetPrimaryVertexTPC() : esd->GetPrimaryVertexSPD() ;
+    const AliESDVertex* vtxESD = 0x0;
+    if      (fVtxTPC) vtxESD = esd->GetPrimaryVertexTPC() ;
+    else if (fVtxSPD) vtxESD = esd->GetPrimaryVertexSPD() ;
+    else              vtxESD = esd->GetPrimaryVertexTracks() ;
     if(!vtxESD){
       for(Int_t j=1;j<kNCuts;j++)fBitMap->SetBitNumber(j,kFALSE); 
       AliWarning("Cannot get vertex, skipping event");
@@ -297,7 +304,10 @@ void AliCFEventRecCuts::FillHistograms(TObject* obj, Bool_t b)
   fhQA[kNTracks][index]->Fill(nTracks);
 
   //look at vertex parameters:
-  const AliESDVertex* vtxESD = fVtxTPC ? esd->GetPrimaryVertexTPC() : esd->GetPrimaryVertexSPD();
+  const AliESDVertex* vtxESD = 0x0;
+  if      (fVtxTPC) vtxESD = esd->GetPrimaryVertexTPC() ;
+  else if (fVtxSPD) vtxESD = esd->GetPrimaryVertexSPD() ;
+  else              vtxESD = esd->GetPrimaryVertexTracks() ;
   if(!vtxESD)return;
   // Require the vertex to have been reconstructed successfully
   if (strcmp(vtxESD->GetName(), "default")==0)return;
index 8670fc1..6c696e3 100644 (file)
@@ -51,7 +51,8 @@ class AliCFEventRecCuts: public AliCFCutBase
   void SetVertexZResCut(Double_t zMax=1.e99){fVtxZResMax=zMax;} // cut values setter
 
   void SetVertexNContributors(Int_t min, Int_t max) {fVtxNCtrbMin=min; fVtxNCtrbMax=max;}
-  void SetUseTPCVertex() {fVtxTPC=kTRUE;}
+  void SetUseTPCVertex() {fVtxTPC=kTRUE ; fVtxSPD=kFALSE;} //default is vertex from tracks
+  void SetUseSPDVertex() {fVtxTPC=kFALSE; fVtxSPD=kTRUE ;} //default is vertex from tracks
 
   Int_t    GetNTracksMin() const {return fNTracksMin;} // cut values getter
   Int_t    GetNTracksMax() const {return fNTracksMax;} // cut values getter
@@ -103,7 +104,8 @@ class AliCFEventRecCuts: public AliCFCutBase
   Double_t fVtxZResMax ;//Maximum value of sigma_vtx in X
   Int_t    fVtxNCtrbMin; //Min number of contributors to vertex
   Int_t    fVtxNCtrbMax; //Max number of contributors to vertex
-  Bool_t   fVtxTPC;      //Flag for use of TPC vertex
+  Bool_t   fVtxTPC;  //Flag for use of TPC vertex
+  Bool_t   fVtxSPD;  //Flag for use of SPD vertex
 
   TBits *fBitMap ; //cut mask