]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFEventRecCuts.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / CORRFW / AliCFEventRecCuts.cxx
index e817440047a7ada3a37cd8aea07086ed752502f6..3ef9734faaa0c443d17c9688d8a261468eecf564 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");
@@ -242,9 +249,9 @@ void AliCFEventRecCuts::SelectionBitMap(TObject* obj) {
     // Pick up the position and uncertainties
     
     Double_t vtxPos[3];
-    vtxPos[0] = vtxESD->GetXv();
-    vtxPos[1] = vtxESD->GetYv();
-    vtxPos[2] = vtxESD->GetZv();
+    vtxPos[0] = vtxESD->GetX();
+    vtxPos[1] = vtxESD->GetY();
+    vtxPos[2] = vtxESD->GetZ();
     
     Double_t vtxRes[3];
     vtxRes[0] = vtxESD->GetXRes();
@@ -297,14 +304,17 @@ 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;
   // vertex position and uncertainties
-  fhQA[kVtxPosX] [index]->Fill(vtxESD->GetXv());
-  fhQA[kVtxPosY] [index]->Fill(vtxESD->GetYv());
-  fhQA[kVtxPosZ] [index]->Fill(vtxESD->GetZv());
+  fhQA[kVtxPosX] [index]->Fill(vtxESD->GetX());
+  fhQA[kVtxPosY] [index]->Fill(vtxESD->GetY());
+  fhQA[kVtxPosZ] [index]->Fill(vtxESD->GetZ());
   fhQA[kVtxResX] [index]->Fill(vtxESD->GetXRes());
   fhQA[kVtxResY] [index]->Fill(vtxESD->GetYRes());
   fhQA[kVtxResZ] [index]->Fill(vtxESD->GetZRes());
@@ -355,10 +365,10 @@ void AliCFEventRecCuts::SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin
   
   // book QA histograms
 
-  Char_t str[256];
+  Char_t str[5];
   for (Int_t i=0; i<kNStepQA; i++) {
-    if (i==0) sprintf(str," ");
-    else sprintf(str,"_cut");
+    if (i==0) snprintf(str,5," ");
+    else snprintf(str,5,"_cut");
 
     fhQA[kNTracks][i]  = new  TH1F(Form("%s_NTracks%s",GetName(),str),                 "",501,-0.5,500.5);
     fhQA[kVtxPosX][i]  = new  TH1F(Form("%s_Vtx_Pos_X%s",GetName(),str),               "",100,-5.,5.);