]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
TPC DAs
authoragrigora <alina.grigoras@cern.ch>
Wed, 26 Nov 2014 12:37:49 +0000 (13:37 +0100)
committeragrigora <alina.grigoras@cern.ch>
Mon, 15 Dec 2014 12:52:02 +0000 (13:52 +0100)
32 files changed:
TPC/CMakeLists.txt
TPC/DA/CMakeLists.txt [new file with mode: 0644]
TPC/DA/TPCCEda.cxx [moved from TPC/TPCCEda.cxx with 100% similarity]
TPC/DA/TPCCEnewda.cxx [moved from TPC/TPCCEnewda.cxx with 100% similarity]
TPC/DA/TPCPEDESTALda.cxx [moved from TPC/TPCPEDESTALda.cxx with 100% similarity]
TPC/DA/TPCPULSERda.cxx [moved from TPC/TPCPULSERda.cxx with 100% similarity]
TPC/DA/TPCQAda.cxx [moved from TPC/TPCQAda.cxx with 100% similarity]
TPC/DA/TPCRAWda.cxx [moved from TPC/TPCRAWda.cxx with 100% similarity]
TPC/TPCbase/AliClusters.cxx [moved from TPC/TPCrec/AliClusters.cxx with 100% similarity]
TPC/TPCbase/AliClusters.h [moved from TPC/TPCrec/AliClusters.h with 100% similarity]
TPC/TPCbase/AliComplexCluster.cxx [moved from TPC/TPCrec/AliComplexCluster.cxx with 100% similarity]
TPC/TPCbase/AliComplexCluster.h [moved from TPC/TPCrec/AliComplexCluster.h with 100% similarity]
TPC/TPCbase/AliTPCClusterParam.cxx [moved from TPC/TPCrec/AliTPCClusterParam.cxx with 100% similarity]
TPC/TPCbase/AliTPCClusterParam.h [moved from TPC/TPCrec/AliTPCClusterParam.h with 100% similarity]
TPC/TPCbase/AliTPCClustersRow.cxx [moved from TPC/TPCrec/AliTPCClustersRow.cxx with 100% similarity]
TPC/TPCbase/AliTPCClustersRow.h [moved from TPC/TPCrec/AliTPCClustersRow.h with 100% similarity]
TPC/TPCbase/AliTPCCorrection.cxx
TPC/TPCbase/AliTPCQADataMakerRec.cxx [moved from TPC/TPCrec/AliTPCQADataMakerRec.cxx with 100% similarity]
TPC/TPCbase/AliTPCQADataMakerRec.h [moved from TPC/TPCrec/AliTPCQADataMakerRec.h with 100% similarity]
TPC/TPCbase/AliTPCRecoParam.cxx [moved from TPC/TPCrec/AliTPCRecoParam.cxx with 100% similarity]
TPC/TPCbase/AliTPCRecoParam.h [moved from TPC/TPCrec/AliTPCRecoParam.h with 100% similarity]
TPC/TPCbase/AliTPCclusterInfo.cxx [moved from TPC/TPCrec/AliTPCclusterInfo.cxx with 100% similarity]
TPC/TPCbase/AliTPCclusterInfo.h [moved from TPC/TPCrec/AliTPCclusterInfo.h with 100% similarity]
TPC/TPCbase/AliTPCclusterMI.cxx [moved from TPC/TPCrec/AliTPCclusterMI.cxx with 100% similarity]
TPC/TPCbase/AliTPCclusterMI.h [moved from TPC/TPCrec/AliTPCclusterMI.h with 100% similarity]
TPC/TPCbase/CMakeLists.txt
TPC/TPCbase/TPCbaseLinkDef.h
TPC/TPCrec/AliTPCclustererKr.cxx
TPC/TPCrec/AliTPCtrackerSector.h
TPC/TPCrec/CMakeLists.txt
TPC/TPCrec/TPCrecLinkDef.h
TPC/TPCsim/CMakeLists.txt

index 96776d4a995022cf57eabb8b06dda21712cd1147..4381453551830f46e8f7eb05cd98e7795f798bd6 100644 (file)
@@ -21,6 +21,10 @@ add_subdirectory(TPCsim)
 add_subdirectory(TPCmon)
 add_subdirectory(TPCupgrade)
 
+if(DA)
+    add_subdirectory(DA)
+endif(DA)
+
 # Installing the mapping
 install(DIRECTORY mapping DESTINATION TPC)
 
diff --git a/TPC/DA/CMakeLists.txt b/TPC/DA/CMakeLists.txt
new file mode 100644 (file)
index 0000000..604394f
--- /dev/null
@@ -0,0 +1,87 @@
+# **************************************************************************
+# * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
+# *                                                                        *
+# * Author: The ALICE Off-line Project.                                    *
+# * Contributors are mentioned in the code where appropriate.              *
+# *                                                                        *
+# * Permission to use, copy, modify and distribute this software and its   *
+# * documentation strictly for non-commercial purposes is hereby granted   *
+# * without fee, provided that the above copyright notice appears in all   *
+# * copies and that both the copyright notice and this permission notice   *
+# * appear in the supporting documentation. The authors make no claims     *
+# * about the suitability of this software for any purpose. It is          *
+# * provided "as is" without express or implied warranty.                  *
+# **************************************************************************
+
+# Module include folder
+include_directories(${AliRoot_SOURCE_DIR}/TPC/DA)
+
+# Additional include folders in alphabetical order
+include_directories(
+                    ${AliRoot_SOURCE_DIR}/RAW/RAWDatarec
+                    ${AliRoot_SOURCE_DIR}/STEER/STEERBase
+                    ${AliRoot_SOURCE_DIR}/TPC/TPCbase
+                   )
+
+
+# DIM
+link_directories(${DIMDIR}/${ODIR})
+
+#daqDA flags
+include_directories(${daqDA})
+link_directories(${daqDA})
+
+# AMORE definitions
+add_definitions(${AMORE_DEFINITIONS})
+include_directories(${AMORE_INCLUDE_DIR})
+
+# Generating the DA executable
+add_executable(TPCCEda TPCCEda.cxx) #1
+add_executable(TPCCEnewda TPCCEnewda.cxx) #2
+add_executable(TPCPEDESTALda TPCPEDESTALda.cxx) #3
+add_executable(TPCPULSERda TPCPULSERda.cxx) #4
+add_executable(TPCQAda TPCQAda.cxx) #5
+add_executable(TPCRAWda TPCRAWda.cxx) #6
+
+set(MODULE_COMPILE_FLAGS)
+set(MODULE_LINK_FLAGS)
+
+target_link_libraries(TPCCEda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} RootExtra Root) # 1
+target_link_libraries(TPCCEnewda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} Root RootExtra) # 2
+target_link_libraries(TPCPEDESTALda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} Root RootExtra) # 3
+target_link_libraries(TPCPULSERda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} Root RootExtra) # 4
+target_link_libraries(TPCQAda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} Root RootExtra) # 5
+target_link_libraries(TPCRAWda RAWDatarec-static STEERBase-static TPCbase-static ${AMORE_AUXLIBS} daqDA ${DATE_MONLIBRARIES} ${DATE_RCPROXYLIBRARIES} Root RootExtra) # 6
+
+# different flags
+set(MODULE_COMPILE_FLAGS "-O -g ${DATE_CFLAGS} ${AMORE_CFLAGS}")
+set(MODULE_LINK_FLAGS "${DATE_LDFLAGS} ${AMORE_STATICLIBS}")
+
+set_target_properties(TPCCEda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 1 
+set_target_properties(TPCCEda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 1
+
+set_target_properties(TPCCEnewda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 2 
+set_target_properties(TPCCEnewda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 2
+
+set_target_properties(TPCPEDESTALda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 3 
+set_target_properties(TPCPEDESTALda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 3
+
+set_target_properties(TPCPULSERda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 4 
+set_target_properties(TPCPULSERda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 4
+
+set_target_properties(TPCQAda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 5 
+set_target_properties(TPCQAda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 5
+
+set_target_properties(TPCRAWda PROPERTIES COMPILE_FLAGS ${MODULE_COMPILE_FLAGS}) # 6 
+set_target_properties(TPCRAWda PROPERTIES LINK_FLAGS "${MODULE_LINK_FLAGS}") # 6
+
+
+# Installation
+install(TARGETS 
+                TPCCEda
+                TPCCEnewda
+                TPCPEDESTALda
+                TPCPULSERda
+                TPCQAda
+                TPCRAWda
+        RUNTIME DESTINATION bin)
\ No newline at end of file
similarity index 100%
rename from TPC/TPCCEda.cxx
rename to TPC/DA/TPCCEda.cxx
similarity index 100%
rename from TPC/TPCCEnewda.cxx
rename to TPC/DA/TPCCEnewda.cxx
similarity index 100%
rename from TPC/TPCPULSERda.cxx
rename to TPC/DA/TPCPULSERda.cxx
similarity index 100%
rename from TPC/TPCQAda.cxx
rename to TPC/DA/TPCQAda.cxx
similarity index 100%
rename from TPC/TPCRAWda.cxx
rename to TPC/DA/TPCRAWda.cxx
index fc7d1200ac84587bca7c43a2792e8f3c888acfa3..de3582188045d562c524563cbacd9e06cda720df 100644 (file)
 #include "AliTPCcalibDB.h"
 #include "AliTPCExB.h"
 
-#include "AliTPCRecoParam.h"
+//#include "AliTPCRecoParam.h"
 #include "TLinearFitter.h"
 #include <AliSysInfo.h>
 
index 5a3f92fdb48e4406bd22d0e475a1b48e6da2a413..05319f517c4857b599a7284e27db9275266192de 100644 (file)
@@ -28,12 +28,13 @@ include_directories(${ROOT_INCLUDE_DIRS}
                     ${AliRoot_SOURCE_DIR}/STEER/ESD
                     ${AliRoot_SOURCE_DIR}/STEER/STEER
                     ${AliRoot_SOURCE_DIR}/STEER/STEERBase
-                    ${AliRoot_SOURCE_DIR}/TPC/TPCrec
                     ${CMAKE_BINARY_DIR}/version
                    )
 
 # Sources in alphabetical order
 set(SRCS
+    AliClusters.cxx
+    AliComplexCluster.cxx
     AliDetectorParam.cxx
     AliDigitsArray.cxx
     AliDigits.cxx
@@ -57,6 +58,10 @@ set(SRCS
     AliTPCCalibViewerGUItime.cxx
     AliTPCCalPad.cxx
     AliTPCCalROC.cxx
+    AliTPCclusterInfo.cxx
+    AliTPCclusterMI.cxx
+    AliTPCClusterParam.cxx
+    AliTPCClustersRow.cxx
     AliTPCComposedCorrection.cxx
     AliTPCConfigDA.cxx
     AliTPCConfigParser.cxx
@@ -85,7 +90,9 @@ set(SRCS
     AliTPCPreprocessorOnline.cxx
     AliTPCPRF2D.cxx
     AliTPCQAChecker.cxx
+    AliTPCQADataMakerRec.cxx
     AliTPCRawStreamV3.cxx
+    AliTPCRecoParam.cxx
     AliTPCRF1D.cxx
     AliTPCROC.cxx
     AliTPCROCVoltError3D.cxx
@@ -107,18 +114,28 @@ string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
 get_directory_property(incdirs INCLUDE_DIRECTORIES)
 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
 
+set(ROOT_DEPENDENCIES Core EG GenVector Geom Gpad Graf Gui Hist MathCore Matrix Minuit Physics Proof RIO Spectrum Tree)
+set(ALIROOT_DEPENDENCIES STEERBase STEER CDB ESD RAWDatabase RAWDatarec)
+
 # Generate the ROOT map
 # Dependecies
-set(LIBDEPS STEERBase STEER CDB ESD RAWDatabase RAWDatarec Core EG GenVector Geom Gpad Graf Gui Hist MathCore Matrix Minuit Physics Proof RIO Spectrum Tree)
+set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
 
+# Create an object to be reused in case of static libraries 
+# Otherwise the sources will be compiled twice
+add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
+# Add a library to the project using the object
+add_library(${MODULE} SHARED $<TARGET_OBJECTS:TPCbase-object>)
+
+# Linking
+target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 
-# Add a library to the project using the specified source files
-add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
-target_link_libraries(${MODULE} STEERBase STEER CDB ESD RAWDatabase RAWDatarec Core EG GenVector Geom Gpad Graf Gui Hist MathCore Matrix Minuit Physics Proof RIO Spectrum Tree)
+# Public include folders that will be propagated to the dependecies
+target_include_directories(${MODULE} PUBLIC ${incdirs})
 
 # Additional compilation flags
-set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g")
+set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g")
 
 # System dependent: Modify the way the library is build
 if(${CMAKE_SYSTEM} MATCHES Darwin)
@@ -130,4 +147,24 @@ install(TARGETS ${MODULE}
         ARCHIVE DESTINATION lib
         LIBRARY DESTINATION lib)
 
-install(FILES ${HDRS} DESTINATION include)
\ No newline at end of file
+install(FILES ${HDRS} DESTINATION include)
+
+# Static version if DA enabled
+if(ALIROOT_STATIC)
+    add_library(${MODULE}-static STATIC $<TARGET_OBJECTS:TPCbase-object>)
+    set_target_properties(${MODULE}-static PROPERTIES OUTPUT_NAME ${MODULE})
+
+    # list of shared dependencies / the name of the variable containing the list of static ones
+    generate_static_dependencies("${ALIROOT_DEPENDENCIES}" "STATIC_ALIROOT_DEPENDENCIES")
+    target_link_libraries(${MODULE}-static ${STATIC_ALIROOT_DEPENDENCIES} Root RootExtra)
+    
+    # Public include folders that will be propagated to the dependecies
+    target_include_directories(${MODULE}-static PUBLIC ${incdirs})
+    
+    set_target_properties(${MODULE}-static PROPERTIES LINK_FLAGS "-Wl,--whole-archive")
+
+    # Installation
+    install(TARGETS ${MODULE}-static
+            ARCHIVE DESTINATION lib
+            LIBRARY DESTINATION lib)
+endif(ALIROOT_STATIC)
index 5b2046a56b035f67db8784c28b94ca04693bee14..614f7838ae6d68ce6858b70522a882c7ea8dc52a 100644 (file)
 #pragma link C++ class AliTPCExBEffectiveSector+;      // sectorwise above
                                                        // --- still used in CalibMacros --- move to attic if removed there
 
+// Solving the circular rependecies
+#pragma link C++ class AliTPCClusterParam+;   // Cluster parametrization - Moved from TPCrec
+#pragma link C++ class AliTPCQADataMakerRec+; // Offline QA - Moved from TPCrec
+#pragma link C++ class AliTPCRecoParam+;      // Config parameters for reconstruction - moved from TPCrec
+#pragma link C++ class AliTPCClustersRow+;    // TPC Container array of "cluster" inside 1 padrow - moved from TPCrec
+#pragma link C++ class AliTPCclusterMI+;      // Derived from Cluster (shape in addition) - moved from TPCrec
+                                              // --- ask Peter what can happen if renamed (add some pragma !??!)
+#pragma link C++ class AliTPCclusterInfo+;    // additional info attach to cluster (add digit map) - moved from TPCrec
+                                              // currently not used by default
+#pragma link C++ class AliClusters+;          // Generic container for clusters derived from segmentID - all clusters - moved from TPCrec
+                                              //   contains 1 AliTPCClustersRow per segment (1 segment = 1 padrow)
+#pragma link C++ class AliComplexCluster+;    // Used to store additional cluster and tracklet information along track - moved from TPCrec
+                                              // Following classes are derived
+                                              // --- Documentation to be added - classes to be cleaned
+                                              // --- Marian to investigate
+#pragma link C++ class AliTPCExactPoint+;     // defined in AliComplexCluster.h -- moved from TPCrec
+#pragma link C++ class AliTPCClusterPoint+;   // defined in AliComplexCluster.h - moved from TPCrec
+#pragma link C++ class AliTPCTrackerPoint+;   // defined in AliComplexCluster.h - moved from TPCrec
+#pragma link C++ class AliTPCTrackPoint+;     // defined in AliComplexCluster.h - moved from TPCrec
+#pragma link C++ class AliTPCTrackPoint2+;    // defined in AliComplexCluster.h - moved from TPCrec
 #endif
+
index e8800f9486793032def052760bf2497b13ffa498..25c72ecb2b9d77fa56d7bc40eddcc421235f3ea5 100644 (file)
@@ -207,7 +207,7 @@ delete stream;
 #include "TObject.h"
 #include "AliPadMax.h"
 #include "AliSimDigits.h"
-#include "AliTPCv4.h"
+//#include "AliTPCv4.h"
 #include "AliTPCParam.h"
 #include "AliTPCDigitsArray.h"
 #include "AliTPCvtpr.h"
index bf87f0cf08f429b3347cb3d01d467cd051d1866f..d80bc3885ce22e716794e1a6537f0c002fe8a278 100644 (file)
@@ -14,6 +14,7 @@
 //   Origin: 
 //-------------------------------------------------------
 
+#include "TClonesArray.h"
 
 //class TFile;
 class AliTPCParam;
index a1f2c8f5be335192c5476b8f843a0b154e4d3520..9998efa56575baef3b9b8c16c8f3461e388d9bf8 100644 (file)
@@ -30,28 +30,19 @@ include_directories(${ROOT_INCLUDE_DIRS}
                     ${AliRoot_SOURCE_DIR}/STEER/STEER
                     ${AliRoot_SOURCE_DIR}/STEER/STEERBase
                     ${AliRoot_SOURCE_DIR}/TPC/TPCbase
-                    ${AliRoot_SOURCE_DIR}/TPC/TPCsim
                    )
 
 # Sources in alphabetical order
 set(SRCS
-    AliClusters.cxx
-    AliComplexCluster.cxx
     AliCosmicTracker.cxx
     AliPadMax.cxx
     AliTPCclusterer.cxx
     AliTPCclustererKr.cxx
-    AliTPCclusterInfo.cxx
     AliTPCclusterKr.cxx
-    AliTPCclusterMI.cxx
-    AliTPCClusterParam.cxx
-    AliTPCClustersRow.cxx
     AliTPCCosmicTrackfit.cxx
     AliTPCCosmicUtils.cxx
     AliTPCpolyTrack.cxx
-    AliTPCQADataMakerRec.cxx
     AliTPCReconstructor.cxx
-    AliTPCRecoParam.cxx
     AliTPCseed.cxx
     AliTPCtrack.cxx
     AliTPCtracker.cxx
@@ -68,18 +59,28 @@ string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
 get_directory_property(incdirs INCLUDE_DIRECTORIES)
 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
 
+set(ROOT_DEPENDENCIES Core Gpad Graf Hist MathCore Matrix Minuit Physics RIO Tree)
+set(ALIROOT_DEPENDENCIES STEERBase STEER CDB ESD RAWDatabase RAWDatarec ANALYSIS ANALYSISalice TPCbase)
+
 # Generate the ROOT map
 # Dependecies
-set(LIBDEPS STEERBase STEER CDB ESD RAWDatabase RAWDatarec ANALYSIS ANALYSISalice TPCbase TPCsim Core Gpad Graf Hist MathCore Matrix Minuit Physics RIO Tree)
+set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
 
+# Create an object to be reused in case of static libraries 
+# Otherwise the sources will be compiled twice
+add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
+# Add a library to the project using the object
+add_library(${MODULE} SHARED $<TARGET_OBJECTS:TPCrec-object>)
+
+# Linking
+target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 
-# Add a library to the project using the specified source files
-add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
-target_link_libraries(${MODULE}  STEERBase STEER CDB ESD RAWDatabase RAWDatarec ANALYSIS ANALYSISalice TPCbase TPCsim Core Gpad Graf Hist MathCore Matrix Minuit Physics RIO Tree)
+# Public include folders that will be propagated to the dependecies
+target_include_directories(${MODULE} PUBLIC ${incdirs})
 
 # Additional compilation flags
-set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g")
+set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g")
 
 # System dependent: Modify the way the library is build
 if(${CMAKE_SYSTEM} MATCHES Darwin)
index e65a47f912d756a9669eb9c7a706d01115273070..90015c227c83f1a00139678c0f3e7214b354306b 100644 (file)
@@ -8,25 +8,6 @@
 #pragma link off all classes;
 #pragma link off all functions;
 
-#pragma link C++ class AliTPCclusterMI+;      // Derived from Cluster (shape in addition)
-                                              // --- ask Peter what can happen if renamed (add some pragma !??!)
-#pragma link C++ class AliTPCclusterInfo+;    // additional info attach to cluster (add digit map)
-                                              // currently not used by default
-
-#pragma link C++ class AliComplexCluster+;    // Used to store additional cluster and tracklet information along track
-                                              // Following classes are derived
-                                              // --- Documentation to be added - classes to be cleaned
-                                              // --- Marian to investigate
-#pragma link C++ class AliTPCTrackerPoint+;   // defined in AliComplexCluster.h
-#pragma link C++ class AliTPCClusterPoint+;   // defined in AliComplexCluster.h
-#pragma link C++ class AliTPCExactPoint+;     // defined in AliComplexCluster.h
-#pragma link C++ class AliTPCTrackPoint+;     // defined in AliComplexCluster.h
-#pragma link C++ class AliTPCTrackPoint2+;    // defined in AliComplexCluster.h
-
-#pragma link C++ class AliClusters+;          // Generic container for clusters derived from segmentID - all clusters
-                                              //   contains 1 AliTPCClustersRow per segment (1 segment = 1 padrow)
-#pragma link C++ class AliTPCClustersRow+;    // TPC Container array of "cluster" inside 1 padrow
-
 #pragma link C++ class AliTPCclusterer+;      // The TPC clusterer
 
 #pragma link C++ class AliTPCtrack+;          // Derived from AliTrack base class for TPC tracks
 #pragma link C++ class AliTPCtracker+;        // The TPC tracker
 
 #pragma link C++ class AliTPCReconstructor+;  // The TPC reconstructor steering TPC reconstruction
-#pragma link C++ class AliTPCRecoParam+;      // Config parameters for reconstruction
-#pragma link C++ class AliTPCClusterParam+;   // Cluster parametrization
 #pragma link C++ class AliTPCTracklet+;       // Used inside calbration for global fitting
                                               // --- should be removed at a later point after calib reassessment
-#pragma link C++ class AliTPCQADataMakerRec+; // Offline QA
 
 // Used in Krypton --- Update documentation for all 4 classes
 #pragma link C++ class AliTPCvtpr+;           // Helper class for clusterer --- Rename such that is clear that it is used in Kr
index 55dcf0093569cdbc3175d8a35255e73b2612d865..44107d75291be2b72d344037544579100e1b23f7 100644 (file)
@@ -54,18 +54,28 @@ string(REPLACE ".cxx" ".h" HDRS "${SRCS}")
 get_directory_property(incdirs INCLUDE_DIRECTORIES)
 generate_dictionary("${MODULE}" "${MODULE}LinkDef.h" "${HDRS}" "${incdirs}")
 
+set(ROOT_DEPENDENCIES Core EG GenVector Geom Hist MathCore Matrix Physics RIO Tree VMC)
+set(ALIROOT_DEPENDENCIES  STEERBase STEER CDB ESD RAWDatabase RAWDatarec RAWDatasim TPCbase TPCrec)
+
 # Generate the ROOT map
 # Dependecies
-set(LIBDEPS STEERBase STEER CDB ESD RAWDatabase RAWDatarec RAWDatasim TPCbase Core EG GenVector Geom Hist MathCore Matrix Physics RIO Tree VMC)
+set(LIBDEPS ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 generate_rootmap("${MODULE}" "${LIBDEPS}" "${CMAKE_CURRENT_SOURCE_DIR}/${MODULE}LinkDef.h")
 
+# Create an object to be reused in case of static libraries 
+# Otherwise the sources will be compiled twice
+add_library(${MODULE}-object OBJECT ${SRCS} G__${MODULE}.cxx)
+# Add a library to the project using the object
+add_library(${MODULE} SHARED $<TARGET_OBJECTS:TPCsim-object>)
+
+# Linking
+target_link_libraries(${MODULE} ${ALIROOT_DEPENDENCIES} ${ROOT_DEPENDENCIES})
 
-# Add a library to the project using the specified source files
-add_library(${MODULE} SHARED ${SRCS} G__${MODULE}.cxx)
-target_link_libraries(${MODULE} STEERBase STEER CDB ESD RAWDatabase RAWDatarec RAWDatasim TPCbase Core EG GenVector Geom Hist MathCore Matrix Physics RIO Tree VMC)
+# Public include folders that will be propagated to the dependecies
+target_include_directories(${MODULE} PUBLIC ${incdirs})
 
 # Additional compilation flags
-set_target_properties(${MODULE} PROPERTIES COMPILE_FLAGS "-O -g")
+set_target_properties(${MODULE}-object PROPERTIES COMPILE_FLAGS "-O -g")
 
 # System dependent: Modify the way the library is build
 if(${CMAKE_SYSTEM} MATCHES Darwin)