Просмотр исходного кода

Added support for different McStack configuration (FairMCTrack or
MpdMCTrack). Now cmake checks whether MpdRoot has MCStack or newer
MpdMCStack library and define _OLD_STACK_ or _NEW_STACK_ for the
preprocessor.

PeterParfenovGSI лет назад: 4
Родитель
Сommit
02f49a1755
2 измененных файлов с 37 добавлено и 7 удалено
  1. 27 6
      CMakeLists.txt
  2. 10 1
      converter/PicoDstConverter.cpp

+ 27 - 6
CMakeLists.txt

@@ -176,6 +176,7 @@ set(PICODSTCONVERTER_INCLUDE_DIRECTORIES
   ${MPDROOTDIR}/kalman
   ${MPDROOTDIR}/lhetrack
   ${MPDROOTDIR}/mcstack
+  ${MPDROOTDIR}/generators
   ${MPDROOTDIR}/strawendcap
   ${MPDROOTDIR}/etof
   ${MPDROOTDIR}/tof
@@ -190,6 +191,15 @@ set(PICODSTCONVERTER_INCLUDE_DIRECTORIES
 #---Add Needed libraries
 find_library(BASE NAMES Base PATHS ${FAIRROOT_LIBRARY_DIR})
 find_library(MCSTACK NAMES MCStack PATHS $ENV{FAIRLIBDIR})
+if (MCSTACK)
+  message(STATUS "MCStack library is found")
+  add_definitions("-D_OLD_MCSTACK_")
+endif()
+if (NOT MCSTACK)
+  find_library(MPDMCSTACK NAMES MpdMCStack PATHS $ENV{FAIRLIBDIR})
+  message(STATUS "MpdMCStack library is found")
+  add_definitions("-D_NEW_MCSTACK_")
+endif()
 find_library(PASSIVE NAMES Passive PATHS $ENV{FAIRLIBDIR})
 find_library(MPDFIELD NAMES MpdField PATHS $ENV{FAIRLIBDIR})
 find_library(MPDBASE NAMES MpdBase PATHS $ENV{FAIRLIBDIR})
@@ -209,12 +219,23 @@ find_library(LHETrack NAMES LHETrack PATHS $ENV{FAIRLIBDIR})
 find_library(STS NAMES Sts PATHS $ENV{FAIRLIBDIR})
 find_library(MPDPID NAMES MpdPid PATHS $ENV{FAIRLIBDIR})
 
-set(PICODSTCONVERTER_INCLUDE_LIBRARIES
-  PicoDst ${BASE}
-  ${MCSTACK} ${PASSIVE} ${KALMAN} ${CLUSTER} ${TPC} ${STS} ${ZDC} ${FFD}
-  ${STRAWECT} ${STRAWENDCAP} ${LHETRACK} ${TOF}
-  ${MPDFIELD} ${MPDBASE} ${MPDDST} ${MPDGENERALGENERATOR} ${MPDPID}
-)
+if(MCSTACK)
+ set(PICODSTCONVERTER_INCLUDE_LIBRARIES
+   PicoDst ${BASE}
+   ${MCSTACK} ${PASSIVE} ${KALMAN} ${CLUSTER} ${TPC} ${STS} ${ZDC} ${FFD}
+   ${STRAWECT} ${STRAWENDCAP} ${LHETRACK} ${TOF}
+   ${MPDFIELD} ${MPDBASE} ${MPDDST} ${MPDGENERALGENERATOR} ${MPDPID}
+ )
+elseif(MPDMCSTACK)
+ set(PICODSTCONVERTER_INCLUDE_LIBRARIES
+   PicoDst ${BASE}
+   ${MPDMCSTACK} ${PASSIVE} ${KALMAN} ${CLUSTER} ${TPC} ${STS} ${ZDC} ${FFD}
+   ${STRAWECT} ${STRAWENDCAP} ${LHETRACK} ${TOF}
+   ${MPDFIELD} ${MPDBASE} ${MPDDST} ${MPDGENERALGENERATOR} ${MPDPID}
+ )
+elseif()
+ message(FATAL_ERROR "No MCSTACK nor MPDMCSTACK libraries was found!")
+endif()
 
 add_executable(PicoDstConverter "${CMAKE_CURRENT_SOURCE_DIR}/converter/PicoDstConverter.cpp")
 target_include_directories(PicoDstConverter PUBLIC ${PICODSTCONVERTER_INCLUDE_DIRECTORIES})

+ 10 - 1
converter/PicoDstConverter.cpp

@@ -17,9 +17,13 @@
 #include <TSystem.h>
 #include <TVector3.h>
 #include <TStopwatch.h>
-
 #include "FairMCEventHeader.h"
+#ifdef _OLD_MCSTACK_
 #include "FairMCTrack.h"
+#endif
+#ifdef _NEW_MCSTACK_
+#include "MpdMCTrack.h"
+#endif
 #include "MpdEvent.h"
 #include "MpdZdcDigi.h"
 #include "MpdPid.h"
@@ -239,7 +243,12 @@ int main(int argc, char **argv)
     int mcTrackCounter = 0;
     for (int imctrack=0; imctrack<MCTracks->GetEntriesFast(); imctrack++)
     {
+#ifdef _OLD_MCSTACK_
       FairMCTrack *mctrack = (FairMCTrack*) MCTracks->UncheckedAt(imctrack);
+#endif
+#ifdef _NEW_MCSTACK_
+      MpdMCTrack *mctrack = (MpdMCTrack*) MCTracks->UncheckedAt(imctrack);
+#endif
       bool isUsed = (UsedMCTracks.count(imctrack));
 
       // If motherId != 1 and mc track doesn't relate to any reco track - skip