]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZERO.h
New macro for generating MC OCDB for PbPb.
[u/mrichter/AliRoot.git] / VZERO / AliVZERO.h
index 5503df69d9bc9b06ea4946889ab520d99e8a059b..9f8b8856f1c35950e8d12320b9dc615904065c59 100755 (executable)
@@ -1,5 +1,5 @@
-#ifndef VZERO_H
-#define VZERO_H
+#ifndef ALIVZERO_H
+#define ALIVZERO_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
@@ -8,57 +8,92 @@
 //  Manager and hits classes for set : VZERO    //
 //////////////////////////////////////////////////
 
+/*
 #include "AliRun.h"
-#include "AliLoader.h" 
+#include "AliMC.h"
 #include "AliDetector.h"
-#include "AliHit.h"
-#include "TNamed.h"
-#include "TTree.h"
+#include "AliVZEROLoader.h"
+#include <TNamed.h>
+#include <TTree.h>
+*/
+#include "AliDetector.h"
+#include "AliVZEROTrigger.h"
+
+class TNamed;
+class TTree;
+class TF1;
 
+class AliVZEROLoader;
 class AliVZEROhit; 
+class AliVZEROdigit;
+class AliVZEROCalibData;
+class AliVZERORecoParam;
+  
 class AliVZERO : public AliDetector {
  
 public:
 
-  AliVZERO() {}
+  AliVZERO();
   AliVZERO(const char *name, const char *title);
   virtual       ~AliVZERO();
-//  virtual void   AddHit(Int_t track , Int_t *vol, Float_t *hits)=0; 
-//  virtual void   AddDigits(Int_t* tracks, Int_t* digits)=0;
-  virtual void   BuildGeometry();
+
   virtual void   CreateGeometry();
   virtual void   CreateMaterials();
-  virtual Int_t  DistanceToPrimitive(Int_t px, Int_t py);
+  virtual void   AddAlignableVolumes() const {}
   virtual Int_t  IsVersion() const = 0;
   virtual void   Init();
   virtual AliLoader* MakeLoader(const char* topfoldername);
+  virtual void   Hits2Digits();
+  virtual void   Hits2SDigits();
+  virtual void   Digits2Raw();
+  virtual Bool_t Raw2SDigits(AliRawReader*);
   virtual void   SetTreeAddress();  
   virtual void   MakeBranch(Option_t *option) =0;
-  virtual void   DrawModule() {};
+  virtual void   DrawModule() const {};
   virtual void   StepManager() {};
-  virtual inline  void   SetThickness(Float_t thick)  {fThickness = thick;};
-  virtual inline  void   SetThickness1(Float_t thick) {fThickness1 = thick;};
+// Trigger 
+  virtual AliTriggerDetector* CreateTriggerDetector() const 
+  { return new AliVZEROTrigger(); }
+  
+  virtual void   SetThickness(Float_t thick)  {fThickness = thick;};
+  virtual void   SetThickness1(Float_t thick) {fThickness1 = thick;};
 // Set Stepping Parameters
   virtual void   SetMaxStepQua(Float_t p1);
   virtual void   SetMaxStepAlu(Float_t p1);
   virtual void   SetMaxDestepQua(Float_t p1);
   virtual void   SetMaxDestepAlu(Float_t p1);
 
-   Float_t      fThickness;
-   Float_t      fThickness1;
+  AliDigitizer*  CreateDigitizer(AliRunDigitizer* manager) const;
+
+  void           GetCalibData();
+  Float_t        CorrectLeadingTime(Int_t i, Float_t time, Float_t adc) const;
+  double         SignalShape(double *x, double *par);
 
 protected:
 
-   Int_t fIdSens1;
+   Int_t   fIdSens1;      // Sensitive volume  in VZERO
+   Float_t fThickness;    // Total thickness of box holding Right detector V0R i.e. 4.1 cm
+   Float_t fThickness1;   // Thickness of elementary cells i.e. 0.7 cm
   
 // Stepping Parameters
-   Float_t fMaxStepQua;      // Maximum step size inside the quartz volumes
-   Float_t fMaxStepAlu;      // Maximum step size inside the  aluminum volumes
-   Float_t fMaxDestepQua;    // Maximum relative energy loss in quartz
-   Float_t fMaxDestepAlu;    // Maximum relative energy loss in aluminum
-  
-  ClassDef(AliVZERO,1)  //Class for the VZERO detector
+   Float_t fMaxStepQua;   // Maximum step size inside the quartz volumes
+   Float_t fMaxStepAlu;   // Maximum step size inside the  aluminum volumes
+   Float_t fMaxDestepQua; // Maximum relative energy loss in quartz
+   Float_t fMaxDestepAlu; // Maximum relative energy loss in aluminum
+
+private:
+   AliVZERO(const AliVZERO& /*vzero*/); 
+   AliVZERO& operator = (const AliVZERO& /*vzero*/); 
+
+   AliVZEROCalibData *fCalibData;      //! Pointer to the calibration object
+   Int_t              fNBins[64];      //! Number of bins in each SDigit
+   Float_t            fBinSize[64];    //! Bin size in each SDigit
+   TF1*               fTimeSlewing;    //! Function for time slewing correction
+   TF1*               fSignalShape;    //! Function for signal shape used in Raw->SDigits
+   AliVZERORecoParam *fRecoParam;      //! Reco params used in Raw->SDigits
+
+  ClassDef(AliVZERO,2)  //Class for the VZERO detector
 };
 
 //____________________________________________________________