]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/FORWARD/analysis/AliFMDAnaParameters.cxx
bug fix in the vertex selection
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaParameters.cxx
index 16f88aac2775c37e0450b75edb38730cb9a36301..bd013b27f2aef4ebb24db0ce05fca2b0a35dec41 100644 (file)
@@ -66,12 +66,13 @@ AliFMDAnaParameters::AliFMDAnaParameters() :
   fBackground(0),
   fEnergyDistribution(0),
   fEventSelectionEfficiency(0),
+  fSharingEfficiency(0),
   fCorner1(4.2231, 26.6638),
   fCorner2(1.8357, 27.9500),
-  fEnergyPath("$ALICE_ROOT/FMD/Correction/EnergyDistribution"),
-  fBackgroundPath("$ALICE_ROOT/FMD/Correction/Background"),
-  fEventSelectionEffPath("$ALICE_ROOT/FMD/Correction/EventSelectionEfficiency"),
-  fSharingEffPath("$ALICE_ROOT/FMD/Correction/SharingEfficiency"),
+  fEnergyPath("$ALICE_ROOT/PWG2/FORWARD/corrections/EnergyDistribution"),
+  fBackgroundPath("$ALICE_ROOT/PWG2/FORWARD/corrections/Background"),
+  fEventSelectionEffPath("$ALICE_ROOT/PWG2/FORWARD/corrections/EventSelectionEfficiency"),
+  fSharingEffPath("$ALICE_ROOT/PWG2/FORWARD/corrections/SharingEfficiency"),
   fProcessPrimary(kFALSE),
   fProcessHits(kFALSE),
   fTrigger(kMB1),
@@ -79,8 +80,8 @@ AliFMDAnaParameters::AliFMDAnaParameters() :
   fMagField(k5G),
   fSpecies(kPP)
 {
-  
-  
+  // Do not use this - it is only for IO 
+  fgInstance = this;
   //fVerticies.Add(new TVector2(4.2231, 26.6638));
   // fVerticies.Add(new TVector2(1.8357, 27.9500));
   // Default constructor 
@@ -88,7 +89,7 @@ AliFMDAnaParameters::AliFMDAnaParameters() :
 //____________________________________________________________________
 char* AliFMDAnaParameters::GetPath(const char* species) {
   
-  char* path ;
+  char* path = "";
   
   if(species == fgkBackgroundID)
     path = Form("%s/%s_%d_%d_%d_%d_%d_%d.root",
@@ -191,6 +192,66 @@ void AliFMDAnaParameters::InitEventSelectionEff() {
 }
 //____________________________________________________________________
 
+void AliFMDAnaParameters::PrintStatus() const
+{
+  
+  TString energystring;
+  switch(fEnergy) {
+  case k900:
+    energystring.Form("900 GeV");   break;
+  case k7000:
+    energystring.Form("7000 GeV");  break;
+  case k10000:
+    energystring.Form("10000 GeV"); break;
+  case k14000:
+    energystring.Form("14000 GeV"); break;
+  default:
+    energystring.Form("invalid energy"); break;
+  }
+  TString triggerstring;
+  switch(fTrigger) {
+  case kMB1:
+    triggerstring.Form("Minimum bias 1");   break;
+  case kMB2:
+    triggerstring.Form("Minimum bias 2");   break;
+  case kSPDFASTOR:
+    triggerstring.Form("SPD FAST OR");   break;
+  case kNOCTP:
+    triggerstring.Form("NO TRIGGER TEST");   break;
+  default:
+    energystring.Form("invalid trigger"); break;
+  }
+  TString magstring;
+  switch(fMagField) {
+  case k5G:
+    magstring.Form("5 kGaus");   break;
+  case k0G:
+    magstring.Form("0 kGaus");   break;
+  default:
+    magstring.Form("invalid mag field"); break;
+  }
+  TString collsystemstring;
+  switch(fSpecies) {
+  case kPP:
+    collsystemstring.Form("p+p");   break;
+  case kPbPb:
+    collsystemstring.Form("Pb+Pb");   break;
+  default:
+    collsystemstring.Form("invalid collision system");   break;
+  }
+  
+
+  std::cout<<"Energy      = "<<energystring.Data()<<std::endl;
+  std::cout<<"Trigger     = "<<triggerstring.Data()<<std::endl;
+  std::cout<<"Mag Field   = "<<magstring.Data()<<std::endl;
+  std::cout<<"Coll System = "<<collsystemstring.Data()<<std::endl;
+  
+  
+  
+}
+
+//____________________________________________________________________
+
 void AliFMDAnaParameters::InitSharingEff() {
   
   //AliCDBEntry*   background = GetEntry(fgkBackgroundCorrection);
@@ -492,35 +553,20 @@ Float_t AliFMDAnaParameters::GetEtaFromStrip(UShort_t det, Char_t ring, UShort_t
 
 //_____________________________________________________________________
 
-void AliFMDAnaParameters::GetVertex(AliESDEvent* esd, Double_t* vertexXYZ) 
+Bool_t AliFMDAnaParameters::GetVertex(AliESDEvent* esd, Double_t* vertexXYZ) 
 {
+  
   const AliESDVertex* vertex = 0;
-  vertex = esd->GetPrimaryVertex();
-  if(!vertex || (vertexXYZ[0] == 0 && vertexXYZ[1] == 0 && vertexXYZ[2] == 0))        
-    vertex = esd->GetPrimaryVertexSPD();
-  if(!vertex || (vertexXYZ[0] == 0 && vertexXYZ[1] == 0 && vertexXYZ[2] == 0))        
-    vertex = esd->GetPrimaryVertexTPC();
-  if(!vertex || (vertexXYZ[0] == 0 && vertexXYZ[1] == 0 && vertexXYZ[2] == 0))    
-    vertex = esd->GetVertex();
-  if (vertex && (vertexXYZ[0] != 0 || vertexXYZ[1] != 0 || vertexXYZ[2] != 0)) {
+  vertex = esd->GetPrimaryVertexSPD();
+  if(vertex)
     vertex->GetXYZ(vertexXYZ);
-    //std::cout<<vertex->GetName()<<"   "<< vertex->GetTitle() <<"   "<< vertex->GetZv()<<std::endl;
-    return;
-  }
-  else if (esd->GetESDTZERO()) { 
-    vertexXYZ[0] = 0;
-    vertexXYZ[1] = 0;
-    vertexXYZ[2] = esd->GetT0zVertex();
-    
-    return;
-  }
   
-  return;
+  return vertex->GetStatus();
   
 }
 
 //____________________________________________________________________
-Bool_t AliFMDAnaParameters::IsEventTriggered(AliESDEvent *esd) {
+Bool_t AliFMDAnaParameters::IsEventTriggered(AliESDEvent *esd) const {
   // check if the event was triggered
   ULong64_t triggerMask = esd->GetTriggerMask();
   
@@ -545,7 +591,7 @@ Bool_t AliFMDAnaParameters::IsEventTriggered(AliESDEvent *esd) {
       return kTRUE;
     break;
   }
-  case kTEST_NOCTP: {
+  case kNOCTP: {
     return kTRUE;
     break;
   }