]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZERO.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / VZERO / AliVZERO.h
index 49f9f1a5fc1c4639a53f83422922df1c7e139bf7..c2087644ffdbc09e911fbe9fbfbebc9758bee180 100755 (executable)
 #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   StepManager() {};
+// 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
@@ -54,6 +63,12 @@ public:
   virtual void   SetMaxDestepQua(Float_t p1);
   virtual void   SetMaxDestepAlu(Float_t p1);
 
+  AliDigitizer*  CreateDigitizer(AliDigitizationInput* digInput) 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;      // Sensitive volume  in VZERO
@@ -65,8 +80,19 @@ protected:
    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
+
+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
 };
 
 //____________________________________________________________