Correct formula for phi, in case of current local X <0, in GetLocalXat and GetPhiZat
[u/mrichter/AliRoot.git] / ITS / AliITSPlaneEff.h
CommitLineData
4a66240a 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
4a66240a 6#include <TString.h>
7167ae53 7#include "AliPlaneEff.h"
4a66240a 8#include "AliLog.h"
9
10class AliITSsegmentation;
11class TF1;
12class AliITSgeom;
13
14////////////////////////////////////////////////////
15// //
16// ITS virtual base class for Plane Efficiency //
6344adcc 17// Origin: Giuseppe.Bruno@ba.infn.it //
4a66240a 18// //
19////////////////////////////////////////////////////
20
162637e4 21/* $Id$ */
4a66240a 22
7167ae53 23class AliITSPlaneEff : public AliPlaneEff {
4a66240a 24 public:
25
26 AliITSPlaneEff();// Default constructor
27 // Standard constructor
4a66240a 28 virtual ~AliITSPlaneEff(){;};
29 // copy constructor. See detector specific implementation.
30 AliITSPlaneEff(const AliITSPlaneEff &source);
31 // Assignment operator. See detector specific implementation.
85f5e9c2 32 AliITSPlaneEff& operator=(const AliITSPlaneEff &source);
4a66240a 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;};
7167ae53 43 //
44 virtual Double_t PlaneEff(const UInt_t key) const=0;
4a66240a 45 // Plane efficiency for active detector (excluding dead/noisy channels)
46 virtual Double_t LivePlaneEff(UInt_t) const
6344adcc 47 {AliWarning("This method gives just a rough estimate of the live-Det Efficiency!");
48 return -1.;};
4a66240a 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;};
7167ae53 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;};
aa0de373 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;};
5fbd4fd6 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;};
41d18cd2 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*)
5fbd4fd6 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; }
4a66240a 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
5fbd4fd6 99 Bool_t fHis; //! if true, then histograms are created and filled
4a66240a 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