Introduction of alignable nodes symbolic names (R.Grosso)
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 26 Sep 2006 14:11:43 +0000 (14:11 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 26 Sep 2006 14:11:43 +0000 (14:11 +0000)
STEER/AliDetector.cxx
STEER/AliDetector.h
STEER/AliMC.cxx
STEER/AliMC.h
STEER/AliModule.cxx
STEER/AliModule.h

index 71d748b..76a89e1 100644 (file)
@@ -149,6 +149,13 @@ void AliDetector::Publish(const char */*dir*/, void */*address*/, const char */*
 }
 
 //_______________________________________________________________________
+void AliDetector::AddAlignableVolumes() const
+{
+  // 
+  AliWarning(Form("%s still has to implement the AddAlignableVolumes method!",GetName()));
+}
+
+//_______________________________________________________________________
 TBranch* AliDetector::MakeBranchInTree(TTree *tree, const char* name, 
                                        void* address, Int_t size,
                                        const char *file)
index c2c54e9..de5e6b1 100644 (file)
@@ -50,6 +50,7 @@ public:
   virtual void        MakeBranch(Option_t *opt=" ");
   virtual void        ResetDigits();
   virtual void        ResetHits();
+  virtual void        AddAlignableVolumes() const;
 
   virtual void        ResetPoints();
   virtual void        SetTreeAddress();
index 31db1a8..8bbba67 100644 (file)
@@ -198,7 +198,22 @@ void  AliMC::InitGeometry()
     AliInfo(Form("%10s R:%.2fs C:%.2fs",
                 detector->GetName(),stw.RealTime(),stw.CpuTime()));
   }
-  
+}
+
+//_______________________________________________________________________
+void  AliMC::SetAllAlignableVolumes()
+{ 
+  //
+  // Add alignable volumes (TGeoPNEntries) looping on all
+  // active modules
+  //
+
+  AliInfo(Form("Setting entries for all alignable volumes of active detectors"));
+  AliModule *detector;
+  TIter next(gAlice->Modules());
+  while((detector = dynamic_cast<AliModule*>(next()))) {
+    detector->AddAlignableVolumes();
+  }
 }
 
 //_______________________________________________________________________
@@ -622,6 +637,8 @@ void AliMC::Init()
 
    //=================Create Materials and geometry
    gMC->Init();
+   //Set alignable volumes for the whole geometry
+   SetAllAlignableVolumes();
    //Read the cuts for all materials
    ReadTransPar();
    //Build the special IMEDIA table
index c10e035..e7230d5 100644 (file)
@@ -38,6 +38,7 @@ public:
 //
    virtual  void  ConstructGeometry();
    virtual  void  InitGeometry();     
+   virtual  void  SetAllAlignableVolumes();     
    virtual  void  GeneratePrimaries();
    virtual  void  BeginEvent();
    virtual  void  BeginPrimary();
index bde9763..321db45 100644 (file)
@@ -688,6 +688,13 @@ void AliModule::ReadEuclidMedia(const char* filnam)
 } 
 
 //_______________________________________________________________________
+void AliModule::AddAlignableVolumes() const
+{
+  // 
+  AliWarning(Form(" %s still has to implement the AddAlignableVolumes method!",GetName()));
+}
+
+//_______________________________________________________________________
 void AliModule::RemapTrackReferencesIDs(Int_t *map)
 {
   // 
index d058c54..0525452 100644 (file)
@@ -105,7 +105,7 @@ public:
   virtual void        Browse(TBrowser *) {}
   virtual void        CreateGeometry() {}
   virtual void        CreateMaterials() {}
-  virtual void        AddAlignableVolumes() const {}
+  virtual void        AddAlignableVolumes() const;
   virtual void        Disable();
   virtual void        Enable();
   virtual void        PreTrack(){}