/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-#include <TObject.h>
#include <TString.h>
-#include "AliLog.h"
+#include "AliPlaneEff.h"
class AliITSsegmentation;
class TF1;
class AliITSgeom;
+class AliLog;
////////////////////////////////////////////////////
// //
/* $Id$ */
-class AliITSPlaneEff : public TObject {
+class AliITSPlaneEff : public AliPlaneEff {
public:
AliITSPlaneEff();// Default constructor
// Standard constructor
- //AliITSPlaneEff(AliITSDetTypeSim *dettyp);
virtual ~AliITSPlaneEff(){;};
// copy constructor. See detector specific implementation.
AliITSPlaneEff(const AliITSPlaneEff &source);
// Assignment operator. See detector specific implementation.
- virtual AliITSPlaneEff& operator=(const AliITSPlaneEff &source);
+ AliITSPlaneEff& operator=(const AliITSPlaneEff &source);
// Simple way to add another class (i.e. statistics).
//AliITSPlaneEff& operator +=( const AliITSPlaneEff &){return *this};
// Average Plane efficiency (including dead/noisy)
Double_t ErrPlaneEff(Int_t nfound,Int_t ntried) const;
virtual void GetPlaneEff(Int_t nfound,Int_t ntried,Double_t &eff, Double_t &err) const
{eff=PlaneEff(nfound,ntried); err=ErrPlaneEff(nfound,ntried); return;};
+ //
+ virtual Double_t PlaneEff(const UInt_t key) const=0;
// Plane efficiency for active detector (excluding dead/noisy channels)
virtual Double_t LivePlaneEff(UInt_t) const
{AliWarning("This method gives just a rough estimate of the live-Det Efficiency!");
{AliError("This method must be implemented in a derived class"); return kFALSE;};
virtual Bool_t AddFromCDB()
{AliError("This method must be implemented in a derived class"); return kFALSE;};
+ // method to locate a basic block from Detector Local coordinate
+ virtual UInt_t GetKeyFromDetLocCoord(Int_t, Int_t, Float_t, Float_t) const
+ {AliError("This method must be implemented in a derived class"); return 999999;};
+ virtual UInt_t Nblock() const // return the number of basic blocks
+ {AliError("This method must be implemented in a derived class"); return 999999;};
+ virtual Bool_t GetBlockBoundaries(const UInt_t,Float_t&,Float_t&,Float_t&,Float_t&) const
+ {AliError("This method must be implemented in a derived class"); return kFALSE;};
+ // Methods for dealing with auxiliary histograms
+ // method to set on/off the creation/updates of histograms (Histos are created/destroyed)
+ virtual void SetCreateHistos(Bool_t)
+ {AliError("This method must be implemented in a derived class"); return; }
+ virtual Bool_t GetCreateHistos() const {return fHis;};
+ virtual Bool_t FillHistos(UInt_t, Bool_t, Float_t*, Float_t*, Int_t*, Float_t*)
+ {AliError("This method must be implemented in a derived class"); return kFALSE; }
+ virtual Bool_t WriteHistosToFile(TString ,Option_t*)
+ {AliError("This method must be implemented in a derived class"); return kFALSE; }
+ virtual Bool_t ReadHistosFromFile(TString )
+ {AliError("This method must be implemented in a derived class"); return kFALSE; }
+ void InitCDB();
protected:
- void InitCDB();
virtual void Copy(TObject &obj) const;
void NotImplemented(const char *method) const {if(gDebug>0)
Warning(method,"This method is not implemented for this sub-class");}
Int_t fRunNumber; //! run number (to access CDB)
TString fCDBUri; //! Uri of the default CDB storage
Bool_t fInitCDBCalled; //! flag to check if CDB storages are already initialized
+ Bool_t fHis; //! if true, then histograms are created and filled
private:
//Int_t* fFound; // number of associated clusters into a given block (e.g. SPD 1200 chip)
//Int_t* fTries; // number of exspected clusters into a given block (e.g. SPD 1200 chip)
//Int_t fRunNumber; // run number (to access CDB)
- ClassDef(AliITSPlaneEff,1) // ITS Plane Efficiency virtual base class
+ ClassDef(AliITSPlaneEff,2) // ITS Plane Efficiency virtual base class
};
#endif