]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSPlaneEff.h
Parameters for track finding in AliITStrackerSA added to AliITSRecoParam (F. PRino)
[u/mrichter/AliRoot.git] / ITS / AliITSPlaneEff.h
1 #ifndef ALIITSPLANEEFF_H
2 #define ALIITSPLANEEFF_H
3 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 #include <TString.h>
7 #include "AliPlaneEff.h"
8 #include "AliLog.h"
9
10 class AliITSsegmentation;
11 class TF1;
12 class AliITSgeom;
13
14 ////////////////////////////////////////////////////
15 //                                                //
16 // ITS virtual base class for Plane Efficiency    //
17 // Origin: Giuseppe.Bruno@ba.infn.it              //
18 //                                                //
19 ////////////////////////////////////////////////////
20
21 /* $Id:$ */
22
23 class AliITSPlaneEff : public AliPlaneEff {
24  public:
25  
26     AliITSPlaneEff();// Default constructor
27     // Standard constructor
28     virtual ~AliITSPlaneEff(){;};
29     // copy constructor. See detector specific implementation.
30     AliITSPlaneEff(const AliITSPlaneEff &source);
31     // Assignment operator. See detector specific implementation.
32     AliITSPlaneEff& operator=(const AliITSPlaneEff &source);
33     // Simple way to add another class (i.e. statistics). 
34     //AliITSPlaneEff& operator +=( const AliITSPlaneEff &){return *this};
35     // Average Plane efficiency (including dead/noisy)
36     Int_t   GetRunNumber() const {return fRunNumber;}
37     void    SetRunNumber(Int_t n) {fRunNumber=n;}
38     //
39     Double_t PlaneEff(Int_t nfound,Int_t ntried) const;     
40     Double_t ErrPlaneEff(Int_t nfound,Int_t ntried) const; 
41     virtual void GetPlaneEff(Int_t nfound,Int_t ntried,Double_t &eff, Double_t &err) const
42         {eff=PlaneEff(nfound,ntried); err=ErrPlaneEff(nfound,ntried); return;};
43     //
44     virtual Double_t PlaneEff(const UInt_t key) const=0;
45     // Plane efficiency for active  detector (excluding dead/noisy channels)
46     virtual Double_t LivePlaneEff(UInt_t) const
47        {AliWarning("This method gives just a rough estimate of the live-Det Efficiency!"); 
48         return -1.;};
49     virtual Double_t ErrLivePlaneEff(UInt_t) const
50        {AliError("This method must be implemented in a derived class"); return -1.;};
51     // Compute the fraction of Live detector
52     virtual Double_t GetFracLive(const UInt_t) const
53        {AliError("This method must be implemented in a derived class"); return -1.;}; 
54     // Compute the fraction of Bad (i.e. dead + noisy) detector 
55     virtual Double_t GetFracBad(const UInt_t) const
56        {AliError("This method must be implemented in a derived class"); return -1.;}; 
57     // Update the Counting of the plane efficiency
58     virtual Bool_t UpDatePlaneEff(const Bool_t, const UInt_t) 
59        {AliError("This method must be implemented in a derived class"); return kFALSE;};
60     // Estimate of the number of tracks needed for measuring efficiency within RelErr
61     virtual Int_t GetNTracksForGivenEff(Double_t eff, Double_t RelErr) const;
62     void SetDefaultStorage(const char* uri);
63     // Write into the data base 
64     virtual Bool_t WriteIntoCDB() const
65        {AliError("This method must be implemented in a derived class"); return kFALSE;};
66     virtual Bool_t ReadFromCDB()
67        {AliError("This method must be implemented in a derived class"); return kFALSE;};
68     virtual Bool_t AddFromCDB()
69        {AliError("This method must be implemented in a derived class"); return kFALSE;};
70     // method to locate a basic block from Detector Local coordinate 
71     virtual UInt_t GetKeyFromDetLocCoord(Int_t, Int_t, Float_t, Float_t) const
72       {AliError("This method must be implemented in a derived class"); return 999999;};
73     virtual UInt_t Nblock() const // return the number of basic blocks
74       {AliError("This method must be implemented in a derived class"); return 999999;};
75     virtual Bool_t GetBlockBoundaries(const UInt_t,Float_t&,Float_t&,Float_t&,Float_t&) const
76       {AliError("This method must be implemented in a derived class"); return kFALSE;};
77   // Methods for dealing with auxiliary histograms
78     // method to set on/off the creation/updates of histograms (Histos are created/destroyed)
79     virtual void   SetCreateHistos(Bool_t)
80       {AliError("This method must be implemented in a derived class"); return; }
81     virtual Bool_t GetCreateHistos() const {return fHis;};
82     //virtual Bool_t FillHistos(UInt_t, Bool_t, Float_t[2], Float_t[2], Int_t[2])
83     virtual Bool_t FillHistos(UInt_t, Bool_t, Float_t*, Float_t*, Int_t*)
84       {AliError("This method must be implemented in a derived class"); return kFALSE; }
85     virtual Bool_t WriteHistosToFile(TString ,Option_t*)
86       {AliError("This method must be implemented in a derived class"); return kFALSE; }
87     virtual Bool_t ReadHistosFromFile(TString )
88       {AliError("This method must be implemented in a derived class"); return kFALSE; }
89
90  protected:
91
92     void InitCDB();
93     virtual void Copy(TObject &obj) const;
94     void NotImplemented(const char *method) const {if(gDebug>0)
95          Warning(method,"This method is not implemented for this sub-class");}
96     Int_t       fRunNumber;     //! run number (to access CDB)
97     TString     fCDBUri;        //! Uri of the default CDB storage
98     Bool_t      fInitCDBCalled; //! flag to check if CDB storages are already initialized
99     Bool_t      fHis;           //! if true, then histograms are created and filled 
100    
101  private:
102     //Int_t*    fFound;         // number of associated clusters into a given block (e.g. SPD 1200 chip)
103     //Int_t*    fTries;         // number of exspected  clusters into a given block (e.g. SPD 1200 chip)
104     //Int_t     fRunNumber;     // run number (to access CDB)
105
106     ClassDef(AliITSPlaneEff,1) // ITS Plane Efficiency virtual base class 
107 };
108 #endif