]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFSDigitizer.h
Adding class (AliTOFArray) to handle a variable size array of variable size arrays...
[u/mrichter/AliRoot.git] / TOF / AliTOFSDigitizer.h
index 143a4152f8af88ccf62924c88dff6e82deb49e73..a5c591c6e33b8f6b916f67513f129da09d3df619 100644 (file)
@@ -1,43 +1,53 @@
 #ifndef ALITOFSDigitizer_H
 #define ALITOFSDigitizer_H
+
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+//__________________________________________//
+//                                          //
+//  Task Class for making SDigits in TOF    // 
+//                                          //
+//-- Authors: F. Pierella, A. De Caro       //
+//                                          //
+//__________________________________________//
 
-//_________________________________________________________________________
-//  Task Class for making SDigits in TOF      
-//                  
-//-- Authors: F. Pierella, A. De Caro
-
+/* $Id$ */
 
 #include "TTask.h"
-#include "TString.h"
-#include "AliTOF.h"
-#include "AliDetector.h"
 
 class TF1;
+class TString;
 
+class AliLoader;
+class AliRunLoader;
 class AliTOFSDigitizer: public TTask {
 
 public:
   AliTOFSDigitizer() ;          // ctor
-  AliTOFSDigitizer(char* HeaderFile, char *SdigitsFile = 0, Int_t evNumber1=0, Int_t nEvents=1) ; // par ctor
+  //AliTOFSDigitizer(const char* HeaderFile) ; // par ctor
+  AliTOFSDigitizer(const char* HeaderFile, Int_t evNumber1=-1, Int_t nEvents=0) ; // par ctor
+
+  AliTOFSDigitizer(const AliTOFSDigitizer &source); // copy constructor
+  AliTOFSDigitizer& operator=(const AliTOFSDigitizer &/*source*/); // ass. op.
 
   virtual ~AliTOFSDigitizer() ; // dtor
-  const char *GetSDigitsFile() const {return fSDigitsFile.Data();}  
-  virtual void  Exec(Option_t *verboseOption, Option_t *allEvents="noAll"); 
-  void SetSDigitsFile(char * file ) ;
+
+  //static Float_t WidthTdcBin() {return fgkTdcBin;};
+
+  virtual void  Exec(Option_t *verboseOption); 
+  void SetSDigitsFile(char * /*file*/ ) {;}
+  
   void InitParameters();
   virtual void PrintParameters() const ;
-  virtual void  SimulateDetectorResponse(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime);
+  virtual void SimulateDetectorResponse(Float_t z0, Float_t x0, Float_t geantTime, Int_t& nActivatedPads, Int_t& nFiredPads, Bool_t* isFired, Int_t* nPlace, Float_t* qInduced, Float_t* tofTime, Float_t& averageTime);
   virtual void Print(Option_t* opt) const ;
-  TClonesArray *SDigits() const {return fSDigits;}
-  void  SetFirstEvent(Int_t event1)      {fEvent1=event1;}
-  void  SetSecondEvent(Int_t event2)     {fEvent2=event2;}
+  void  SetFirstEvent(Int_t event1)      {fEvent1 = event1;}
+  void  SetSecondEvent(Int_t event2)     {fEvent2 = event2;}
   Int_t GetFirstEvent()  const {return fEvent1;}
   Int_t GetSecondEvent() const {return fEvent2;}
   Int_t GetNEvents() const {return (fEvent2-fEvent1);}
+  void  SelectSectorAndPlate(Int_t sector, Int_t plate);
 
   // setters and getters for detector simulation
   // it summarizes all it is known about TOF strip 
@@ -52,6 +62,7 @@ public:
   void  SetEffBoundary(Float_t effBoundary)          {fEffBoundary=effBoundary;}
   void  SetEff2Boundary(Float_t eff2Boundary)        {fEff2Boundary=eff2Boundary;}
   void  SetEff3Boundary(Float_t eff3Boundary)        {fEff3Boundary=eff3Boundary;}
+  void  SetAddTRes(Float_t addTRes)                  {fAddTRes=addTRes;}
   void  SetResCenter (Float_t resCenter)             {fResCenter=resCenter;}
   void  SetResBoundary(Float_t resBoundary)          {fResBoundary=resBoundary;}
   void  SetResSlope(Float_t resSlope)                {fResSlope=resSlope;}
@@ -67,7 +78,7 @@ public:
   void  SetLogChargeSmearing(Float_t logChargeSmearing){fLogChargeSmearing=logChargeSmearing;}
   void  SetTimeSmearing(Float_t timeSmearing)        {fTimeSmearing=timeSmearing;}
   void  SetAverageTimeFlag(Int_t averageTimeFlag)    {fAverageTimeFlag=averageTimeFlag;}
-  void  SetTdcBin(Float_t tdcBin)                    {fTdcBin=tdcBin;}
+
   void  SetAdcBin(Float_t adcBin)                    {fAdcBin=adcBin;}
   void  SetAdcMean(Float_t adcMean)                  {fAdcMean=adcMean;}
   void  SetAdcRms(Float_t adcRms)                    {fAdcRms=adcRms;}
@@ -83,6 +94,7 @@ public:
   Float_t  GetEffBoundary()      const {return fEffBoundary;}
   Float_t  GetEff2Boundary()     const {return fEff2Boundary;}
   Float_t  GetEff3Boundary()     const {return fEff3Boundary;}
+  Float_t  GetAddTRes ()         const {return fAddTRes;}
   Float_t  GetResCenter ()       const {return fResCenter;}
   Float_t  GetResBoundary()      const {return fResBoundary;}
   Float_t  GetResSlope()         const {return fResSlope;}
@@ -97,19 +109,25 @@ public:
   Float_t  GetLogChargeSmearing()const {return fLogChargeSmearing;}
   Float_t  GetTimeSmearing()     const {return fTimeSmearing;}
   Int_t    GetAverageTimeFlag()  const {return fAverageTimeFlag;}
-  Float_t  GetTdcBin()           const {return fTdcBin;}
+
   Float_t  GetAdcBin()           const {return fAdcBin;}
   Float_t  GetAdcMean()          const {return fAdcMean;}
   Float_t  GetAdcRms()           const {return fAdcRms;}
   
 
+protected:
+
+
 private:
   Int_t   fEvent1;          // lower bound for events to sdigitize
   Int_t   fEvent2;          // upper bound for events to sdigitize
-  TString fSDigitsFile;     // output file 
-  TClonesArray *fSDigits;   //! array of summable digits
   TF1     *ftail;           // pointer to formula for time with tail
   TString fHeadersFile;     // input file
+  AliRunLoader* fRunLoader; //! Run Loader
+  AliLoader* fTOFLoader;    //! Loader
+
+  Int_t fSelectedSector;    // sector number for sdigitization
+  Int_t fSelectedPlate ;    // plate  number for sdigitization
 
   // detector response simulation
   // Intrisic MRPC time resolution and pad (edge effect) parameters
@@ -117,17 +135,19 @@ private:
   Float_t fpadefficiency;   // intrinsic pad efficiency, used if fEdgeEffect==0
   Int_t   fEdgeEffect;      // edge effects option
   Int_t   fEdgeTails;       // edge tails option
-  Float_t fHparameter;      // sensitive edge (to produce hits on the
-  // neighbouring pads) =0.7, new = 0.4 cm
+  Float_t fHparameter;      // sensitive edge (to produce hits on the neighbouring pads)
+                            //                 0.7 cm (old); 0.4 cm (new)
   Float_t fH2parameter;     // parameter to fit the efficiency
-  Float_t fKparameter;      // sensitive edge (going ahead towards the
-  // center no delay effects are suffered) =1.0, new = 0.5 cm
+  Float_t fKparameter;      // sensitive edge (going ahead towards the center
+                            // no delay effects are suffered) 1.0 cm (old); 0.5 cm (new)
   Float_t fK2parameter;     // parameter to fit the efficiency
   // Pad Efficiency and Resolution parameters
   Float_t fEffCenter;       // efficiency in the central region of the pad
   Float_t fEffBoundary;     // efficiency at the boundary of the pad
   Float_t fEff2Boundary;    // efficiency value at H2parameter
   Float_t fEff3Boundary;    // efficiency value at K2parameter
+  Float_t fAddTRes;         // additional contribution to 
+                            // the intrinsic MRPC time resolution (ps)
   Float_t fResCenter;       // resolution (ps) in the central region of the pad
   Float_t fResBoundary;     // resolution (ps)  at the boundary of the pad
   Float_t fResSlope;        // slope (ps/K) for neighbouring pad
@@ -147,15 +167,12 @@ private:
   Float_t fLogChargeSmearing;// Smearing in log of charge ratio
   Float_t fTimeSmearing;    // Smearing in time in time vs log(q1/q2) plot
   Int_t   fAverageTimeFlag; // flag (see the setter for details)
-  Float_t fTdcBin;      // time-window for the TDC bins [ps]
+
   Float_t fAdcBin;      // charge-window for the ADC bins [pC]
   Float_t fAdcMean;     // mean value for the ADC spectrum [bins]
   Float_t fAdcRms;      // rms value for the ADC spectrum [bins]
 
- protected:
-
-
-  ClassDef(AliTOFSDigitizer,1)  // creates TOF SDigits
+  ClassDef(AliTOFSDigitizer,3)  // creates TOF SDigits
 
 };