Skip to content

Use unique_ptr based SetSink Around (1/2)#1200

Merged
karabowi merged 1 commit intoFairRootGroup:devfrom
ChristianTackeGSI:pr/fairrun_sink
Jul 11, 2022
Merged

Use unique_ptr based SetSink Around (1/2)#1200
karabowi merged 1 commit intoFairRootGroup:devfrom
ChristianTackeGSI:pr/fairrun_sink

Conversation

@ChristianTackeGSI
Copy link
Member

Now that FairRun::SetSink supports unique_ptr, use it around to promote good style.


Checklist:

@dennisklein
Copy link
Member

base/steer/FairAnaSelector.cxx is missing #include <memory>.

Thought I'd run iwyu, but it is spamming a lot more ...

iwyu_tool.py -p build base/steer/FairAnaSelector.cxx base/sim/FairMCApplication.cxx

/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.h should add these lines:
#include <RtypesCore.h>     // for Int_t, Bool_t, Long64_t
class TBuffer;
class TClass;
class TMemberInspector;

/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.h should remove these lines:
- #include "FairLogger.h"  // lines 17-17

The full include-list for /home/dklein/projects/FairRoot/base/steer/FairAnaSelector.h:
#include <Rtypes.h>         // for ClassDefOverride
#include <RtypesCore.h>     // for Int_t, Bool_t, Long64_t
#include <TSelector.h>      // for TSelector
#include <TSelectorList.h>  // for TSelectorList
#include <TString.h>        // for TString
#include <TTree.h>          // for TTree
class FairFileSource;  // lines 25-25
class FairRunAnaProof;  // lines 26-26
class TBuffer;
class TClass;
class TFile;  // lines 28-28
class TList;  // lines 29-29
class TMemberInspector;
class TObject;  // lines 30-30
class TProofOutputFile;  // lines 31-31
---

/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.cxx should add these lines:
#include <fairlogger/Logger.h>   // for Logger, LOG
#include <memory>                // for allocator, make_unique
#include "FairSink.h"            // for FairSink

/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.cxx should remove these lines:
- #include "FairLogger.h"  // lines 17-17

The full include-list for /home/dklein/projects/FairRoot/base/steer/FairAnaSelector.cxx:
#include "FairAnaSelector.h"
#include <TFile.h>               // for TFile
#include <TList.h>               // for TList
#include <TNamed.h>              // for TNamed
#include <TObject.h>             // for TObject
#include <TProofOutputFile.h>    // for TProofOutputFile
#include <TProofServ.h>          // for TProofServ, gProofServ
#include <TSystem.h>             // for TSystem, gSystem
#include <fairlogger/Logger.h>   // for Logger, LOG
#include <memory>                // for allocator, make_unique
#include "FairFileSource.h"      // for FairFileSource
#include "FairParAsciiFileIo.h"  // for FairParAsciiFileIo
#include "FairParRootFileIo.h"   // for FairParRootFileIo
#include "FairRootFileSink.h"    // for FairRootFileSink
#include "FairRootManager.h"     // for FairRootManager
#include "FairRunAnaProof.h"     // for FairRunAnaProof
#include "FairRuntimeDb.h"       // for FairRuntimeDb
#include "FairSink.h"            // for FairSink
#include "FairTask.h"            // for FairTask
---

In file included from /home/dklein/projects/FairRoot/base/sim/FairMCApplication.cxx:16:
/home/dklein/projects/FairRoot/base/sim/FairGenericStack.h:62:18: warning: 'FairGenericStack::PushTrack' hides overloaded virtual function [-Woverloaded-virtual]
    virtual void PushTrack(Int_t toBeDone,
                 ^
/home/dklein/fairsoft/apr22/include/vmc/TVirtualMCStack.h:59:17: note: hidden overloaded virtual function 'TVirtualMCStack::PushTrack' declared here: different number of parameters (18 vs 19)
   virtual void PushTrack(Int_t toBeDone, Int_t parent, Int_t pdg, Double_t px, Double_t py, Double_t pz, Double_t e,
                ^
/home/dklein/projects/FairRoot/base/steer/FairTrajFilter.h:17:26: warning: Extra tokens on pragma line

/home/dklein/projects/FairRoot/base/sim/FairMCApplication.h should add these lines:
#include <RtypesCore.h>             // for Int_t, Bool_t, Double_t
class TBuffer;
class TClass;
class TMemberInspector;

/home/dklein/projects/FairRoot/base/sim/FairMCApplication.h should remove these lines:

The full include-list for /home/dklein/projects/FairRoot/base/sim/FairMCApplication.h:
#include <Rtypes.h>                 // for ClassDefOverride
#include <RtypesCore.h>             // for Int_t, Bool_t, Double_t
#include <TLorentzVector.h>         // for TLorentzVector
#include <TString.h>                // for TString
#include <TVirtualMCApplication.h>  // for TVirtualMCApplication
#include <list>                     // for list
#include <map>                      // for map, multimap, map<>::iterator
#include <memory>                   // for unique_ptr
#include "FairRadGridManager.h"     // for FairRadGridManager
#include "FairRunInfo.h"            // for FairRunInfo
class FairDetector;  // lines 27-27
class FairEventHeader;  // lines 28-28
class FairField;  // lines 29-29
class FairGenericStack;  // lines 30-30
class FairMCEventHeader;  // lines 31-31
class FairPrimaryGenerator;  // lines 32-32
class FairRadLenManager;  // lines 33-33
class FairRadMapManager;  // lines 34-34
class FairRootManager;  // lines 35-35
class FairRunSim;  // lines 39-39
class FairTask;  // lines 36-36
class FairTrajFilter;  // lines 37-37
class FairVolume;  // lines 38-38
class TBuffer;
class TChain;  // lines 40-40
class TClass;
class TIterator;  // lines 41-41
class TMemberInspector;
class TObjArray;  // lines 42-42
class TRefArray;  // lines 43-43
class TTask;  // lines 44-44
class TVirtualMC;  // lines 45-45
---

/home/dklein/projects/FairRoot/base/sim/FairMCApplication.cxx should add these lines:
#include <TGeoMatrix.h>            // for TGeoHMatrix
#include <fairlogger/Logger.h>     // for Logger, LOG
#include "FairSink.h"              // for FairSink, kONLINESINK

/home/dklein/projects/FairRoot/base/sim/FairMCApplication.cxx should remove these lines:
- #include "FairLogger.h"  // lines 22-22
- #include "FairRootFileSink.h"  // lines 31-31

The full include-list for /home/dklein/projects/FairRoot/base/sim/FairMCApplication.cxx:
#include "FairMCApplication.h"
#include <TDatabasePDG.h>          // for TDatabasePDG
#include <TFile.h>                 // for TFile
#include <TGeoManager.h>           // for gGeoManager, TGeoManager
#include <TGeoMatrix.h>            // for TGeoHMatrix
#include <TGeoMedium.h>            // for TGeoMedium
#include <TGeoNode.h>              // for TGeoNode
#include <TGeoPhysicalNode.h>      // for TGeoPhysicalNode
#include <TGeoTrack.h>             // for TGeoTrack
#include <TGeoVolume.h>            // for TGeoVolume
#include <TH2.h>                   // for TH2D
#include <THashList.h>             // for THashList
#include <TInterpreter.h>          // for TInterpreter, gInterpreter
#include <TIterator.h>             // for TIterator
#include <TList.h>                 // for TList, TListIter
#include <TObjArray.h>             // for TObjArray
#include <TObject.h>               // for TObject
#include <TParticlePDG.h>          // for TParticlePDG
#include <TROOT.h>                 // for TROOT, gROOT
#include <TRefArray.h>             // for TRefArray
#include <TSystem.h>               // for TSystem, gSystem
#include <TVirtualMC.h>            // for TVirtualMC, gMC
#include <TVirtualMCStack.h>       // for TVirtualMCStack
#include <fairlogger/Logger.h>     // for Logger, LOG
#include <float.h>                 // for DBL_MAX
#include <stdlib.h>                // for getenv, exit
#include <mutex>                   // for mutex
#include <utility>                 // for pair
#include "FairDetector.h"          // for FairDetector
#include "FairField.h"             // for FairField
#include "FairGenericStack.h"      // for FairGenericStack
#include "FairGeoInterface.h"      // for FairGeoInterface
#include "FairGeoLoader.h"         // for FairGeoLoader
#include "FairGeoMedia.h"          // for FairGeoMedia
#include "FairGeoMedium.h"         // for FairGeoMedium
#include "FairIon.h"               // for FairIon
#include "FairMCEventHeader.h"     // for FairMCEventHeader
#include "FairMesh.h"              // for FairMesh
#include "FairModule.h"            // for FairModule, FairModule::svList
#include "FairParticle.h"          // for FairParticle
#include "FairPrimaryGenerator.h"  // for FairPrimaryGenerator
#include "FairRadGridManager.h"    // for FairRadGridManager
#include "FairRadLenManager.h"     // for FairRadLenManager
#include "FairRadMapManager.h"     // for FairRadMapManager
#include "FairRootManager.h"       // for FairRootManager
#include "FairRun.h"               // for FairRun
#include "FairRunInfo.h"           // for FairRunInfo
#include "FairRunSim.h"            // for FairRunSim
#include "FairRuntimeDb.h"         // for FairRuntimeDb
#include "FairSink.h"              // for FairSink, kONLINESINK
#include "FairTask.h"              // for FairTask
#include "FairTrajFilter.h"        // for FairTrajFilter
#include "FairVolume.h"            // for FairVolume
class TParticle;  // lines 62-62
---

or as a diff:

iwyu_tool.py -p build base/steer/FairAnaSelector.cxx base/sim/FairMCApplication.cxx | fix_includes.py
>>> Fixing #includes in '/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.h'
>>> Fixing #includes in '/home/dklein/projects/FairRoot/base/steer/FairAnaSelector.cxx'
>>> Fixing #includes in '/home/dklein/projects/FairRoot/base/sim/FairMCApplication.h'
>>> Fixing #includes in '/home/dklein/projects/FairRoot/base/sim/FairMCApplication.cxx'
IWYU edited 4 files on your behalf.git diff
diff --git a/base/sim/FairMCApplication.cxx b/base/sim/FairMCApplication.cxx
index a36b5dc0c..ab20727d7 100644
--- a/base/sim/FairMCApplication.cxx
+++ b/base/sim/FairMCApplication.cxx
@@ -11,6 +11,34 @@
 // -------------------------------------------------------------------------
 #include "FairMCApplication.h"

+#include <TDatabasePDG.h>       // for TDatabasePDG
+#include <TFile.h>              // for TFile
+#include <TGeoManager.h>        // for gGeoManager, TGeoManager
+#include <TGeoMedium.h>         // for TGeoMedium
+#include <TGeoNode.h>           // for TGeoNode
+#include <TGeoPhysicalNode.h>   // for TGeoPhysicalNode
+#include <TGeoTrack.h>          // for TGeoTrack
+#include <TGeoVolume.h>         // for TGeoVolume
+#include <TH2.h>                // for TH2D
+#include <THashList.h>          // for THashList
+#include <TInterpreter.h>       // for TInterpreter, gInterpreter
+#include <TIterator.h>          // for TIterator
+#include <TList.h>              // for TList, TListIter
+#include <TObjArray.h>          // for TObjArray
+#include <TObject.h>            // for TObject
+#include <TParticlePDG.h>       // for TParticlePDG
+#include <TROOT.h>              // for TROOT, gROOT
+#include <TRefArray.h>          // for TRefArray
+#include <TSystem.h>            // for TSystem, gSystem
+#include <TVirtualMC.h>         // for TVirtualMC
+#include <TVirtualMCStack.h>    // for TVirtualMCStack
+#include <float.h>    // for DBL_MAX
+#include <stdlib.h>   // for getenv, exit
+#include <TGeoMatrix.h>
+#include <fairlogger/Logger.h>
+#include <mutex>      // std::mutex
+#include <utility>    // for pair
+
 #include "FairDetector.h"           // for FairDetector
 #include "FairField.h"              // for FairField
 #include "FairGenericStack.h"       // for FairGenericStack
@@ -19,7 +47,6 @@
 #include "FairGeoMedia.h"           // for FairGeoMedia
 #include "FairGeoMedium.h"          // for FairGeoMedium
 #include "FairIon.h"                // for FairIon
-#include "FairLogger.h"             // for FairLogger, MESSAGE_ORIGIN
 #include "FairMCEventHeader.h"      // for FairMCEventHeader
 #include "FairMesh.h"               // for FairMesh
 #include "FairModule.h"             // for FairModule, etc
@@ -28,7 +55,6 @@
 #include "FairRadGridManager.h"     // for FairRadGridManager
 #include "FairRadLenManager.h"      // for FairRadLenManager
 #include "FairRadMapManager.h"      // for FairRadMapManager
-#include "FairRootFileSink.h"       // for CloneForWorker (in MT mode only)
 #include "FairRootManager.h"        // for FairRootManager
 #include "FairRun.h"                // for FairRun
 #include "FairRunInfo.h"            // for FairRunInfo
@@ -37,34 +63,10 @@
 #include "FairTask.h"               // for FairTask
 #include "FairTrajFilter.h"         // for FairTrajFilter
 #include "FairVolume.h"             // for FairVolume
+#include "FairSink.h"

-#include <TDatabasePDG.h>       // for TDatabasePDG
-#include <TFile.h>              // for TFile
-#include <TGeoManager.h>        // for gGeoManager, TGeoManager
-#include <TGeoMedium.h>         // for TGeoMedium
-#include <TGeoNode.h>           // for TGeoNode
-#include <TGeoPhysicalNode.h>   // for TGeoPhysicalNode
-#include <TGeoTrack.h>          // for TGeoTrack
-#include <TGeoVolume.h>         // for TGeoVolume
-#include <TH2.h>                // for TH2D
-#include <THashList.h>          // for THashList
-#include <TInterpreter.h>       // for TInterpreter, gInterpreter
-#include <TIterator.h>          // for TIterator
-#include <TList.h>              // for TList, TListIter
-#include <TObjArray.h>          // for TObjArray
-#include <TObject.h>            // for TObject
-#include <TParticlePDG.h>       // for TParticlePDG
-#include <TROOT.h>              // for TROOT, gROOT
-#include <TRefArray.h>          // for TRefArray
-#include <TSystem.h>            // for TSystem, gSystem
-#include <TVirtualMC.h>         // for TVirtualMC
-#include <TVirtualMCStack.h>    // for TVirtualMCStack
 class TParticle;

-#include <float.h>    // for DBL_MAX
-#include <mutex>      // std::mutex
-#include <stdlib.h>   // for getenv, exit
-#include <utility>    // for pair
 std::mutex mtx;       // mutex for critical section

 using std::pair;
diff --git a/base/sim/FairMCApplication.h b/base/sim/FairMCApplication.h
index b7b47d27f..c0ba35f8e 100644
--- a/base/sim/FairMCApplication.h
+++ b/base/sim/FairMCApplication.h
@@ -13,17 +13,18 @@
 #ifndef FAIR_MC_APPLICATION_H
 #define FAIR_MC_APPLICATION_H

-#include "FairRadGridManager.h"
-#include "FairRunInfo.h"   // for FairRunInfo
-
 #include <Rtypes.h>                  // for Int_t, Bool_t, Double_t, etc
 #include <TLorentzVector.h>          // for TLorentzVector
 #include <TString.h>                 // for TString
 #include <TVirtualMCApplication.h>   // for TVirtualMCApplication
+#include <RtypesCore.h>
 #include <list>                      // for list
 #include <map>                       // for map, multimap, etc
 #include <memory>                    // for std::unique_ptr

+#include "FairRadGridManager.h"
+#include "FairRunInfo.h"   // for FairRunInfo
+
 class FairDetector;
 class FairEventHeader;
 class FairField;
@@ -43,6 +44,9 @@ class TObjArray;
 class TRefArray;
 class TTask;
 class TVirtualMC;
+class TBuffer;
+class TClass;
+class TMemberInspector;

 enum class FairMCApplicationState
 {
diff --git a/base/steer/FairAnaSelector.cxx b/base/steer/FairAnaSelector.cxx
index cdde1161c..3520dcd85 100644
--- a/base/steer/FairAnaSelector.cxx
+++ b/base/steer/FairAnaSelector.cxx
@@ -13,8 +13,17 @@

 #include "FairAnaSelector.h"

+#include <TFile.h>              // for TFile
+#include <TList.h>              // for TList
+#include <TNamed.h>             // for TNamed
+#include <TObject.h>            // for TObject
+#include <TProofOutputFile.h>   // for TProofOutputFile
+#include <TProofServ.h>         // for TProofServ
+#include <TSystem.h>            // for TSystem, gSystem
+#include <fairlogger/Logger.h>
+#include <memory>
+
 #include "FairFileSource.h"       // for FairFileSource
-#include "FairLogger.h"           // for FairLogger, MESSAGE_ORIGIN
 #include "FairParAsciiFileIo.h"   // for FairParAsciiFileIo
 #include "FairParRootFileIo.h"    // for FairParRootFileIo
 #include "FairRootFileSink.h"     // for FairRootFileSink
@@ -22,14 +31,7 @@
 #include "FairRunAnaProof.h"      // for FairRunAnaProof
 #include "FairRuntimeDb.h"        // for FairRuntimeDb
 #include "FairTask.h"             // for FairTask
-
-#include <TFile.h>              // for TFile
-#include <TList.h>              // for TList
-#include <TNamed.h>             // for TNamed
-#include <TObject.h>            // for TObject
-#include <TProofOutputFile.h>   // for TProofOutputFile
-#include <TProofServ.h>         // for TProofServ
-#include <TSystem.h>            // for TSystem, gSystem
+#include "FairSink.h"

 void FairAnaSelector::Init(TTree* tree)
 {
diff --git a/base/steer/FairAnaSelector.h b/base/steer/FairAnaSelector.h
index 044cafbd8..3ec98716c 100644
--- a/base/steer/FairAnaSelector.h
+++ b/base/steer/FairAnaSelector.h
@@ -14,21 +14,24 @@
 #ifndef FAIRANASELECTOR_H
 #define FAIRANASELECTOR_H

-#include "FairLogger.h"   // for FairLogger, MESSAGE_ORIGIN
-
 #include <Rtypes.h>          // for Int_t, Bool_t, etc
 #include <TSelector.h>       // for TSelector
 #include <TSelectorList.h>   // for TSelectorList
 #include <TString.h>         // for TString
 #include <TTree.h>           // for TTree
+#include <RtypesCore.h>
+
+#include "FairLogger.h"   // for FairLogger, MESSAGE_ORIGIN

 class FairFileSource;
 class FairRunAnaProof;
-
 class TFile;
 class TList;
 class TObject;
 class TProofOutputFile;
+class TBuffer;
+class TClass;
+class TMemberInspector;

 class FairAnaSelector : public TSelector
 {

@ChristianTackeGSI
Copy link
Member Author

CMake has iwyu integration. I even have a local patch to fix the current iwyu setup with the new CMake based one. But really, it's spamming a lot. I don't know, if this helps us really…

Now that FairRun::SetSink supports unique_ptr, use it
around to promote good style.
@karabowi karabowi merged commit c3c691f into FairRootGroup:dev Jul 11, 2022
@ChristianTackeGSI ChristianTackeGSI deleted the pr/fairrun_sink branch July 11, 2022 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants