Changes in Lego for G4 compatibility
authorfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Apr 2000 10:17:32 +0000 (10:17 +0000)
committerfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Apr 2000 10:17:32 +0000 (10:17 +0000)
MUON/AliMUON.cxx
STEER/AliLego.cxx
STEER/AliLego.h
STEER/AliRun.cxx
STEER/AliRun.h
TGeant3/AliGeant3.cxx

index 78b05cfcebf7b015530fd232989e44a2c31908ab..797c90ccb058ec6380dc6f61edc6c913672ea6f6 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.15  2000/01/19 17:16:56  fca
+Introducing a list of lists of hits -- more hits allowed for detector now
+
 Revision 1.14  1999/11/03 13:17:07  fca
 Have ProdProcess return const char*
 
@@ -39,6 +42,8 @@ Introduction of the Copyright and cvs Log
 //  Manager and hits classes for set:MUON     //
 ////////////////////////////////////////////////
 
+#include <TH1.h>
+#include <TH2.h>
 #include <TTUBE.h>
 #include <TBRIK.h>
 #include <TRotMatrix.h>
index 870eb0615a4fcdccf5cb4d97653e6e878c993cea..9dd75c15891ba0ffb9467fb23f33cf635a2f0e05 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.12  2000/04/07 11:12:33  fca
+G4 compatibility changes
+
 Revision 1.11  2000/03/22 13:42:26  fca
 SetGenerator does not replace an existing generator, ResetGenerator does
 
@@ -117,40 +120,49 @@ AliLego::~AliLego()
    delete fHistReta;
 }
 
-
 //___________________________________________
-void AliLego::Run()
+void AliLego::BeginEvent()
 {
-   // loop on phi,theta bins
-   gMC->InitLego();
-   Float_t thed, phid, eta;
-   for (Int_t i=0; i<=fGener->Nphi()*fGener->Ntheta(); ++i) {
 // --- Set to 0 radiation length, absorption length and g/cm2 ---
-     fTotRadl = 0;
-     fTotAbso = 0;
-     fTotGcm2 = 0;
-     
-     gMC->ProcessEvent();
-     
-     thed = fGener->CurTheta()*kRaddeg;
-     phid = fGener->CurPhi()*kRaddeg;
-     eta  = -TMath::Log(TMath::Tan(TMath::Max(
+  fTotRadl = 0;
+  fTotAbso = 0;
+  fTotGcm2 = 0;
+}
+
+//___________________________________________
+void AliLego::FinishEvent()
+{
+  Double_t thed, phid, eta;
+  thed = fGener->CurTheta()*kRaddeg;
+  phid = fGener->CurPhi()*kRaddeg;
+  eta  = -TMath::Log(TMath::Tan(TMath::Max(
             TMath::Min((Double_t)(fGener->CurTheta())/2,
                        TMath::Pi()/2-1.e-10),1.e-10)));
 
-     fHistRadl->Fill(phid,thed,fTotRadl);
-     fHistAbso->Fill(phid,thed,fTotAbso);
-     fHistGcm2->Fill(phid,thed,fTotGcm2);
-     fHistReta->Fill(phid,eta,fTotRadl);
-     gAlice->FinishEvent();
-   }
-   // store histograms in current Root file
-   fHistRadl->Write();
-   fHistAbso->Write();
-   fHistGcm2->Write();
-   fHistReta->Write();
+  fHistRadl->Fill(phid,thed,fTotRadl);
+  fHistAbso->Fill(phid,thed,fTotAbso);
+  fHistGcm2->Fill(phid,thed,fTotGcm2);
+  fHistReta->Fill(phid,eta,fTotRadl);
 }
 
+//___________________________________________
+void AliLego::FinishRun()
+{
+   // Store histograms in current Root file
+  fHistRadl->Write();
+  fHistAbso->Write();
+  fHistGcm2->Write();
+  fHistReta->Write();
+
+  // Delete histograms from memory
+  fHistRadl->Delete(); fHistRadl=0;
+  fHistAbso->Delete(); fHistAbso=0;
+  fHistGcm2->Delete(); fHistGcm2=0;
+  fHistReta->Delete(); fHistReta=0;
+
+}
+
+
 //___________________________________________
 void AliLego::StepManager()
 {
index b2409bd648f6375acda3b675919ec1c16300da86..4a1b7f4bd5f0b177efa5c3f3654cb4349e46e1ba 100644 (file)
@@ -37,8 +37,10 @@ public:
          Float_t themax, Int_t nphi, Float_t phimin,
          Float_t phimax,Float_t rmin,Float_t rmax,Float_t zmax);
   virtual ~AliLego();
-  virtual void  Run();
   virtual void  StepManager();
+  virtual void  BeginEvent();
+  virtual void  FinishEvent();
+  virtual void  FinishRun();
   
   ClassDef(AliLego,1) //Utility class to compute and draw Radiation Length Map
 
index 73b19e12929183d4c8779fa855579b2ff259d1db..b0fc759472bebc11bdf629d250c7038484b94136 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.30  2000/04/18 19:11:40  fca
+Introduce variable Config.C function signature
+
 Revision 1.29  2000/04/07 11:12:34  fca
 G4 compatibility changes
 
@@ -85,6 +88,7 @@ Introduction of the Copyright and cvs Log
 #include "AliRun.h"
 #include "AliDisplay.h"
 #include "AliMC.h"
+#include "AliLego.h"
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -430,6 +434,9 @@ void AliRun::FinishEvent()
   // Called at the end of the event.
   //
   
+  //
+  if(fLego) fLego->FinishEvent();
+
   //Update the energy deposit tables
   Int_t i;
   for(i=0;i<fEventEnergy.GetSize();i++) {
@@ -486,6 +493,9 @@ void AliRun::FinishRun()
   // Called at the end of the run.
   //
 
+  //
+  if(fLego) fLego->FinishRun();
+
   // Clean detector information
   TIter next(fModules);
   AliModule *detector;
@@ -1202,12 +1212,20 @@ void AliRun::PurifyKine()
 }
 
 //_____________________________________________________________________________
-void AliRun::Reset()
+void AliRun::BeginEvent()
 {
   //
   //  Reset all Detectors & kinematics & trees
   //
   char hname[30];
+  //
+
+  //
+  if(fLego) {
+    fLego->BeginEvent();
+    return;
+  }
+
   //
   ResetStack();
   ResetHits();
@@ -1349,8 +1367,11 @@ void AliRun::RunLego(const char *setup,Int_t ntheta,Float_t themin,
   //Create Lego object  
   fLego = new AliLego("lego",ntheta,themin,themax,nphi,phimin,phimax,rmin,rmax,zmax);
 
+  //Prepare MC for Lego Run
+  gMC->InitLego();
+  
   //Run Lego Object
-  fLego->Run();
+  gMC->ProcessRun(ntheta*nphi+1);
   
   // Create only the Root event Tree
   MakeTree("E");
index b9ca252f5e8bf7d3bb79b0f5345192185b148e3b..c95af0220a51b427b63c01098deda1e0fe3bd494 100644 (file)
@@ -18,7 +18,8 @@
 #include "AliMagF.h"
 #include "AliMC.h"
 #include "AliGenerator.h"
-#include "AliLego.h"
+class AliLego;
+//#include "AliLego.h"
 
 enum {Keep_Bit=1, Daughters_Bit=2, Done_Bit=4};
 
@@ -117,7 +118,7 @@ public:
    TClonesArray  *Particles() {return fParticles;};
    virtual  void  PurifyKine();
    virtual  Int_t PurifyKine(Int_t lastSavedTrack, Int_t nofTracks);
-   virtual  void  Reset();
+   virtual  void  BeginEvent();
    virtual  void  ResetDigits();
    virtual  void  ResetHits();
    virtual  void  ResetPoints();
@@ -129,6 +130,7 @@ public:
    virtual  void  RunLego(const char *setup="Config.C",Int_t ntheta=60,Float_t themin=2,Float_t themax=178,
                          Int_t nphi=60,Float_t phimin=0,Float_t phimax=360,Float_t rmin=0,
                          Float_t rmax=570,Float_t zmax=10000);
+   virtual  Bool_t IsLegoRun() const {return (fLego!=0);}
    virtual  void  SetCurrentTrack(Int_t track);                           
    virtual  void  SetDebug(const Int_t level=1) {fDebug = level;}
    virtual  void  SetDisplay(AliDisplay *display) {fDisplay = display;}
index 0884a8d5d890d3b1a3dc4e3fcc2742f698f115ee..dfff40c57b8a2957cdc1f96648ac8ab35c79b233 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.3  2000/04/07 11:12:35  fca
+G4 compatibility changes
+
 Revision 1.2  2000/02/29 19:11:17  fca
 Move gucode into AliGeant3.cxx
 
@@ -57,6 +60,7 @@ void AliGeant3::FinishGeometry()
   SetColors();
 }
 
+//____________________________________________________________________________
 void AliGeant3::Init()
 {
   //
@@ -82,7 +86,7 @@ void AliGeant3::ProcessRun(Int_t nevent)
   Int_t todo = TMath::Abs(nevent);
   for (Int_t i=0; i<todo; i++) {
   // Process one run (one run = one event)
-     gAlice->Reset();
+     gAlice->BeginEvent();
      ProcessEvent();
      gAlice->FinishEvent();
   }