]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliLego.h
If run with debug option (from gAlice) geantinos are sent back and volume sequence...
[u/mrichter/AliRoot.git] / STEER / AliLego.h
index 9bc6e6c9ae0383dfaf3187e044667960413c4c0e..9e0b918dc6a21dc77b227635c26eaa86918b8102 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef ALILego_H
-#define ALILego_H
+#ifndef ALILEGO_H
+#define ALILEGO_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
-#include <TH2.h>
+#include "TNamed.h"
+class TH2F;
+class AliLegoGenerator;
+class TClonesArray;
 
 class AliLego : public TNamed  {
 
-private:
-   Float_t    fThetaMin;        //Minimum generation theta
-   Float_t    fThetaMax;        //Maximum generation theta
-   Float_t    fPhiMin;          //Minimum generation phi
-   Float_t    fPhiMax;          //Maximum generation phi
-   Float_t    fRadMin;          //Generation radius
-   Float_t    fRadMax;          //Maximum tracking radius
-   Float_t    fZMax;            //Maximum tracking Z
-   Int_t      fNtheta;          //Number of bins in Theta
-   Int_t      fNphi;            //Number of bins in Phi
-   Int_t      fThetaBin;        //Current theta bin
-   Int_t      fPhiBin;          //Current phi bin
-   Float_t    fCurTheta;        //Current theta of track
-   Float_t    fCurPhi;          //Current phi of track
-   Float_t    fTotRadl;         //Total Radiation length
-   Float_t    fTotAbso;         //Total absorption length
-   Float_t    fTotGcm2;         //Total G/CM2 traversed
-   TH2F      *fHistRadl;        //Radiation length map 
-   TH2F      *fHistAbso;        //Interaction length map
-   TH2F      *fHistGcm2;        //g/cm2 length map
-   TH2F      *fHistReta;        //Radiation length map as a function of eta
-   
 public:
   AliLego();
-  AliLego(const char *name, const char *title);
+  AliLego(const char *title, Int_t ntheta,Float_t themin,
+         Float_t themax, Int_t nphi, Float_t phimin,
+         Float_t phimax,Float_t rmin,Float_t rmax,Float_t zmax);
+  AliLego(const char *title, AliLegoGenerator* generator);
+  AliLego(const AliLego &lego) {lego.Copy(*this);}
   virtual ~AliLego();
-  virtual void  GenerateKinematics();
-  virtual void  Init(Int_t ntheta,Float_t themin,Float_t themax, Int_t nphi, Float_t phimin,
-                     Float_t phimax,Float_t rmin,Float_t rmax,Float_t zmax);
-  Float_t       PropagateCylinder(Float_t *x, Float_t *v, Float_t r, Float_t z);
-  virtual void  Run();
+  void  Copy(AliLego &lego) const;
   virtual void  StepManager();
-  
+  virtual void  BeginEvent();
+  virtual void  FinishEvent();
+  virtual void  FinishRun();
+  virtual AliLego &operator=(const AliLego &lego) 
+  {lego.Copy(*this);return(*this);}
+private:
+   AliLegoGenerator *fGener;     //Lego generator
+   Float_t    fTotRadl;          //!Total Radiation length
+   Float_t    fTotAbso;          //!Total absorption length
+   Float_t    fTotGcm2;          //!Total G/CM2 traversed
+   TH2F      *fHistRadl;         //Radiation length map 
+   TH2F      *fHistAbso;         //Interaction length map
+   TH2F      *fHistGcm2;         //g/cm2 length map
+   TH2F      *fHistReta;         //Radiation length map as a function of eta
+   TClonesArray *fVolumesFwd;    //!Volume sequence forward
+   TClonesArray *fVolumesBwd;    //!Volume sequence backward   
+   Int_t      fStepBack;         //!Flag for backstepping
+   Int_t      fStepsBackward;    //!Counts steps forward
+   Int_t      fStepsForward;     //!Counts steps backward
+   Int_t      fErrorCondition;   //!Error condition flag
+   Int_t      fDebug;            // Debug Flag
+   
   ClassDef(AliLego,1) //Utility class to compute and draw Radiation Length Map
 
 };
 
+
 #endif
 
+
+
+
+
+
+
+
+
+
+