diff --git a/src/core/msrun.cpp b/src/core/msrun.cpp
index 1c65d870b6a1d8ac6579a12c191362d23797c464..6093a1309ec82739eb612f723ecc158d49a23268 100644
--- a/src/core/msrun.cpp
+++ b/src/core/msrun.cpp
@@ -230,11 +230,24 @@ MsRun::getMsRunXicExtractorSp()
   if(this->findMsRunFile())
     {
 
-      pappso::MsRunXicExtractorFactory::getInstance().setTmpDir("/tmp");
+      pappso::MsRunXicExtractorFactory::getInstance().setTmpDir(
+        QDir::tempPath());
+
+      QSettings settings;
+      QString xic_extraction_method =
+        settings.value("global/xic_extractor", "pwiz").toString();
+      if(xic_extraction_method == "pwiz")
+        {
+          _xic_extractor_sp = pappso::MsRunXicExtractorFactory::getInstance()
+                                .buildMsRunXicExtractorPwizSp(*this);
+        }
+      else
+        {
+          _xic_extractor_sp = pappso::MsRunXicExtractorFactory::getInstance()
+                                .buildMsRunXicExtractorDiskBufferSp(*this);
+        }
       //_xic_extractor_sp = pappso::MsRunXicExtractorFactory::getInstance()
       //                      .buildMsRunXicExtractorDiskBufferSp(*this);
-      _xic_extractor_sp = pappso::MsRunXicExtractorFactory::getInstance()
-                            .buildMsRunXicExtractorPwizSp(*this);
     }
   return _xic_extractor_sp;
 }