ROOT logo
AliRoot » ITS » AliITSPlaneEffSDD

class AliITSPlaneEffSDD: public AliITSPlaneEff

Function Members (Methods)

public:
AliITSPlaneEffSDD()
AliITSPlaneEffSDD(const AliITSPlaneEffSDD& source)
virtual~AliITSPlaneEffSDD()
voidTObject::AbstractMethod(const char* method) const
virtual Bool_tAddFromCDB()
Bool_tAddFromCDB(AliCDBId* cdbId)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidChipAndWingFromChip07(const Int_t chip07, UInt_t& chip, UInt_t& wing) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Double_tErrLivePlaneEff(UInt_t key) const
Double_tErrLivePlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tErrPlaneEff(const UInt_t key) const
Double_tErrPlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual Bool_tFillHistos(UInt_t key, Bool_t found, Float_t* track, Float_t* cluster, Int_t* ctype, Float_t*)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Bool_tGetBlockBoundaries(const UInt_t key, Float_t& xmn, Float_t& xmx, Float_t& zmn, Float_t& zmx) const
virtual Bool_tAliITSPlaneEff::GetCreateHistos() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tGetFound(const UInt_t key) const
virtual Double_tGetFracBad(const UInt_t key) const
virtual Double_tGetFracLive(const UInt_t key) const
virtual const char*TObject::GetIconName() const
UInt_tGetKey(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
virtual UInt_tGetKeyFromDetLocCoord(Int_t ilay, Int_t idet, Float_t locx, Float_t locz) const
virtual const char*TObject::GetName() const
virtual Int_tAliITSPlaneEff::GetNTracksForGivenEff(Double_t eff, Double_t RelErr) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual voidAliITSPlaneEff::GetPlaneEff(Int_t nfound, Int_t ntried, Double_t& eff, Double_t& err) const
Int_tAliITSPlaneEff::GetRunNumber() const
virtual const char*TObject::GetTitle() const
Int_tGetTried(const UInt_t key) const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidAliITSPlaneEff::InitCDB()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual Double_tLivePlaneEff(UInt_t key) const
Double_tLivePlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual UInt_tNblock() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliITSPlaneEffSDD&operator+=(const AliITSPlaneEffSDD& add)
AliITSPlaneEffSDD&operator=(const AliITSPlaneEffSDD& s)
virtual voidTObject::Paint(Option_t* option = "")
virtual Double_tPlaneEff(const UInt_t key) const
Double_tPlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual Bool_tReadFromCDB()
virtual Bool_tReadHistosFromFile(TString filename = "PlaneEffSDDHistos.root")
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidSetCreateHistos(Bool_t his = kFALSE)
voidAliITSPlaneEff::SetDefaultStorage(const char* uri)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidAliITSPlaneEff::SetRunNumber(Int_t n)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual Bool_tUpDatePlaneEff(const Bool_t Kfound, const UInt_t key)
Bool_tUpDatePlaneEff(const Bool_t Kfound, const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual Bool_tWriteHistosToFile(TString filename = "PlaneEffSDDHistos.root", Option_t* option = "RECREATE")
virtual Bool_tWriteIntoCDB() const
protected:
voidChipAndWingAndSubWingFromLocCoor(Float_t locx, Float_t locz, UInt_t& chip, UInt_t& wing, UInt_t& subw) const
voidChipAndWingFromAnode(const UInt_t anode, UInt_t& chip, UInt_t& wing) const
UInt_tChipFromAnode(const UInt_t anode) const
virtual voidCopy(TObject& obj) const
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidGetAllFromKey(const UInt_t key, UInt_t& mod, UInt_t& chip, UInt_t& wing, UInt_t& subw) const
voidGetBadInBlock(const UInt_t key, UInt_t& bad) const
UInt_tGetChipFromKey(const UInt_t key) const
Int_tGetMissingTracksForGivenEff(Double_t eff, Double_t RelErr, UInt_t im, UInt_t ic, UInt_t iw, UInt_t isw = 0) const
UInt_tGetModFromKey(const UInt_t key) const
UInt_tGetSubWingFromKey(const UInt_t key) const
UInt_tGetWingFromKey(const UInt_t key) const
voidTObject::MakeZombie()
voidAliITSPlaneEff::NotImplemented(const char* method) const
UInt_tSubWingFromTimeBin(const Int_t tb, const Int_t ntb) const
UInt_tWingFromAnode(const UInt_t anode) const
private:
virtual voidCopyHistos(AliITSPlaneEffSDD& target) const
virtual voidDeleteHistos()
virtual voidInitHistos()

Data Members

public:
enum { kNModule
kNChip
kNWing
kNSubWing
kNAnode
kNHisto
kNclu
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringAliITSPlaneEff::fCDBUri! Uri of the default CDB storage
Int_tfFound[2080]number of associated clusters in a given block
Bool_tAliITSPlaneEff::fHis! if true, then histograms are created and filled
Bool_tAliITSPlaneEff::fInitCDBCalled! flag to check if CDB storages are already initialized
Int_tAliITSPlaneEff::fRunNumber! run number (to access CDB)
Int_tfTried[2080]number of tracks used for efficiency evaluation
private:
TH1F**fHisClusErrX! histos with Local_X cluster error
TH1F**fHisClusErrZ! histos with Local_Z cluster error
TH2I**fHisClusterSize! histos with cluster-size distribution
TH1F**fHisResX! histos with residual distribution (track-cluster) along local X (r-phi)
TH2F**fHisResXZ! 2-d histos with residual distribution (track-cluster) along local X and Z
TH1F**fHisResZ! histos with residual distribution (track-cluster) along local Z
TH1F***fHisResZclu! histos with residual distribution along local Z for cluster type
TH1F**fHisTrackErrX! histos with track prediction error on Local X
TH1F**fHisTrackErrZ! histos with track prediction error on Local Z
TProfile**fProfClustSizeXvsX! TProfile of cluster_size_X vs. X (of the cluster)
TProfile**fProfClustSizeZvsX! TProfile of cluster_size_X vs. X (of the cluster)
TProfile**fProfResXvsCluSizeX! TProfile of X Residuals vs. cluster size in X
TProfile**fProfResXvsX! TProfile of X Residuals vs. X (of the cluster)
TProfile**fProfResZvsX! TProfile of Z Residuals vs. X (of the cluster)

Class Charts

Inheritance Chart:
TObject
AliPlaneEff
AliITSPlaneEff
AliITSPlaneEffSDD

Function documentation

AliITSPlaneEffSDD()
fHisResXclu(0),
~AliITSPlaneEffSDD()
 destructor
 Inputs:
    none.
 Outputs:
    none.
 Return:
     none.
AliITSPlaneEffSDD(const AliITSPlaneEffSDD& source)
fHis(s.fHis),
fHisResXclu(0),
     Copy Constructor
 Inputs:
    AliITSPlaneEffSDD &s The original class for which
                                this class is a copy of
 Outputs:
    none.
 Return:
AliITSPlaneEffSDD& operator+=(const AliITSPlaneEffSDD& add)
    Add-to-me operator
 Inputs:
    const AliITSPlaneEffSDD &add  simulation class to be added
 Outputs:
    none.
 Return:
    none
AliITSPlaneEffSDD& operator=(const AliITSPlaneEffSDD& s)
    Assignment operator
 Inputs:
    AliITSPlaneEffSDD &s The original class for which
                                this class is a copy of
 Outputs:
    none.
 Return:
void Copy(TObject& obj) const
 protected method. copy this to obj
void CopyHistos(AliITSPlaneEffSDD& target) const
 protected method: copy histos from this to target
Int_t GetMissingTracksForGivenEff(Double_t eff, Double_t RelErr, UInt_t im, UInt_t ic, UInt_t iw, UInt_t isw = 0) const
   Estimate the number of tracks still to be collected to attain a
   given efficiency eff, with relative error RelErr
   Inputs:
         eff    -> Expected efficiency (e.g. those from actual estimate)
         RelErr -> tollerance [0,1]
         im     -> module number [0,259]
         ic     -> chip number [0,3]
         iw     -> wing number [0,1]
         is     -> chip number [0,kNSubWing-1]
   Outputs: none
   Return: the estimated n. of tracks

Double_t PlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
 Compute the efficiency for a basic block,
 Inputs:
        im     -> module number [0,259]
        ic     -> chip number [0,3]
        iw     -> wing number [0,1]
        is     -> chip number [0,kNSubWing-1]
{AliError("PlaneEff(UInt_t,UInt_t,UInt_t,UInt_t): you asked for a non existing block"); return -1.;}
Double_t ErrPlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
 Compute the statistical error on efficiency for a basic block,
 using binomial statistics
 Inputs:
        im     -> module number [0,259]
        ic     -> chip number [0,3]
        iw     -> wing number [0,1]
        is     -> chip number [0,kNSubWing-1]
{AliError("ErrPlaneEff(UInt_t,UInt_t,UInt_t,UInt_t): you asked for a non existing block"); return -1.;}
Bool_t UpDatePlaneEff(const Bool_t Kfound, const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0)
 Update efficiency for a basic block
{AliError("UpDatePlaneEff: you asked for a non existing block"); return kFALSE;}
void ChipAndWingFromAnode(const UInt_t anode, UInt_t& chip, UInt_t& wing) const
 Retun the chip number [0,3] and the wing number [0,1] given the anode number
 input: anode number [0,511]
UInt_t ChipFromAnode(const UInt_t anode) const
 Retun the chip number [0,3] given the anode number
 input: anode number [0,511]
UInt_t WingFromAnode(const UInt_t anode) const
 return the wing number [0,1] given the anode number
 input: anode number [0,511]
UInt_t GetKey(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
 get key given a basic block
{AliError("GetKey: you asked for a non existing block"); return 99999;}
UInt_t GetModFromKey(const UInt_t key) const
 get mod. from key
UInt_t GetChipFromKey(const UInt_t key) const
 retrieves chip from key
UInt_t GetWingFromKey(const UInt_t key) const
 retrieves wing from key
UInt_t GetSubWingFromKey(const UInt_t key) const
 retrieves sub-wing from key
void GetAllFromKey(const UInt_t key, UInt_t& mod, UInt_t& chip, UInt_t& wing, UInt_t& subw) const
 get module, chip, wing and subwing from a key
Double_t LivePlaneEff(UInt_t key) const
 returns plane efficieny after adding the fraction of sensor which is bad
Double_t ErrLivePlaneEff(UInt_t key) const
 returns error on live plane efficiency
Double_t GetFracLive(const UInt_t key) const
 returns the fraction of the sensor which is OK
void GetBadInBlock(const UInt_t key, UInt_t& bad) const
 Compute the number of bad (dead+noisy) anodes inside a block
 (it depends on the chip, not on the sub-wing)
Double_t GetFracBad(const UInt_t key) const
 returns 1-fractional live
Bool_t WriteIntoCDB() const
 write onto CDB
Bool_t ReadFromCDB()
 read from CDB
Bool_t AddFromCDB(AliCDBId* cdbId)
 read efficiency values from CDB
UInt_t GetKeyFromDetLocCoord(Int_t ilay, Int_t idet, Float_t locx, Float_t locz) const
 method to locate a basic block from Detector Local coordinate (to be used in tracking)

 From AliITSsegmentationSDD rev. 24315 2008-03-05:
                            ^x_loc
                            |
   _________________________|0_________________________
  |0 1 ..      |            |.           |         255| (anode numbers)
  |            |            |.           |            |
  |            |            |.           |            |    CHANNEL (i.e. WING) = 1
  |   chip=0   |   chip=1   |.  chip=2   |   chip=3   |
  |            |            |.           |            |
  |____________|____________|256_________|____________|______\  local z (cm)
|.
  |            |            |.           |            |
  |   chip=7   |   chip=6   |.  chip=5   |   chip=4   |    CHANNEL (i.e. WING) = 0
  |            |            |.           |            |
  |            |            |.           |            |
  |____________|____________|0___________|____________|
   511 510 ...               ^              .. 257 256 (anode numbers)
                             |_ (time bins)

 If kNSubWing = 1, i.e. no sub-wing subdivision, then the numbering scheme of the
 unique key is the following, e.g. for the first detector (idet=0,  ilayer=2)

			      ^x_loc (cm)
			      |
   _________________________|__________________________ 3.5085
  |            |            |            |            |
  |            |            |            |            |
  |            |            |            |            |
  |   key=0    |   key=2    |   key=4    |   key=6    |
  |            |            |            |            |
  |____________|____________|____________|____________|_0_____\  local z (cm)
|
  |            |            |            |            |
  |   key=7    |   key=5    |   key=3    |   key=1    |
  |            |            |            |            |
  |            |            |            |            |
  |____________|____________|____________|____________| -3.5085
-3.7632     -1.8816         0          1.1186      3.7632

 for the second detector (idet=2, ilay=2), the same as above but +8: first one 8 (bottom-left),
 last one is 15 (lower-left), and so on.

 If subwing division has been applied, then you count as in the schemes below
 E.g. kNSubWing=2. (It was much simpler with old AliITSsegmentation numbering!)

			      ^x_loc (cm)
		              |
   _________________________|__________________________ 3.5085
  |            |            |            |            |
  |   key=0    |   key=4    |   key=8    |   key=12   |
  |____________|____________|____________|____________| 1.75425
  |            |            |            |            |
  |   key=1    |   key=5    |   key=9    |   key=13   |
  |____________|____________|____________|____________|_0_____\  local z (cm)
|
  |   key=15   |   key=11   |   key=7    |   key=3    |
  |____________|____________|____________|____________| -1.75425
  |            |            |            |            |
  |   key=14   |   key=10   |   key=6    |   key=2    |
  |____________|____________|____________|____________| -3.5085
-3.7632     -1.8816         0          1.1186      3.7632

 E.g. kNSubWing=3
                            ^x_loc (cm)
                            |
   _________________________|__________________________ 3.5085
  |     0      |     6      |     12     |     18     |
  |____________|____________|____________|____________| 2.339
  |     1      |     7      |     13     |     19     |
  |____________|____________|____________|____________| 1.1695
  |     2      |     8      |     14     |     20     |
  |____________|____________|____________|____________|_0_____\  local z (cm)
23     |     17     |     11     |     5
  |____________|____________|____________|____________| -1.1695
  |   key=22   |   key=16   |   key=10   |   key=4    |
  |____________|____________|____________|____________| -2.339
  |    21      |    15      |     9      |     3      |
  |____________|____________|____________|____________| -3.5085
-3.7632     -1.8816         0          1.1186      3.7632


void ChipAndWingAndSubWingFromLocCoor(Float_t locx, Float_t locz, UInt_t& chip, UInt_t& wing, UInt_t& subw) const
UInt_t SubWingFromTimeBin(const Int_t tb, const Int_t ntb) const
Bool_t GetBlockBoundaries(const UInt_t key, Float_t& xmn, Float_t& xmx, Float_t& zmn, Float_t& zmx) const
  This method return the geometrical boundaries of the active volume of a given
  basic block, in the detector reference system.
  Input: unique key to locate a basic block.

  Output: Ymin, Ymax, Zmin, Zmax of a basic block (chip for SPD)
  Return: kTRUE if computation was succesfully, kFALSE otherwise

 the following scheemes will help in following the method implementation
 E.g. kNSubWing=1
                            ^x_loc (cm)
     for all: subw=0        |
   _________________________|__________________________ 3.5085
  |   wing=0   |   wing=0   |   wing=0   |   wing=0   |
  |   chip=0   |   chip=1   |   chip=2   |   chip=3   |
  |   key=0    |   key=2    |   key=4    |   key=6    |
  |____________|____________|____________|____________|_0_____\  local z (cm)
wing=1   |   wing=1   |   wing=1   |   wing=1
  |   chip=3   |   chip=2   |   chip=1   |   chip=0   |
  |   key=7    |   key=5    |   key=3    |   key=1    |
  |____________|____________|____________|____________| -3.5085
-3.7632     -1.8816         0          1.1186      3.7632

 E.g. kNSubWing=2
                            ^x_loc (cm)
                            |
   _________________________|__________________________ 3.5085
  |   chip=0   |   chip=1   |   chip=2   |   chip=3   |
  |   key=0    |   key=4    |   key=8    |   key=12   | subw=0
  |____________|____________|____________|____________|        wing=0
  |   chip=0   |   chip=1   |   chip=2   |   chip=3   | subw=1
  |   key=1    |   key=5    |   key=9    |   key=13   |
  |____________|____________|____________|____________|_0________\  local z (cm)
chip=3   |   chip=2   |   chip=1   |   chip=0
  |   key=15   |   key=11   |   key=7    |   key=3    | subw=1
  |____________|____________|____________|____________|        wing=1
  |   chip=3   |   chip=2   |   chip=1   |   chip=0   | subw=0
  |   key=14   |   key=10   |   key=6    |   key=2    |
  |____________|____________|____________|____________| -3.5085
-3.7632     -1.8816         0          1.1186      3.7632

 as it is now it is consistent with new AliITSsegmentationSDD numbering !
{AliWarning("GetBlockBoundaries: you asked for a non existing key"); return kFALSE;}
void InitHistos()
 for the moment let's create the histograms
 module by  module
void DeleteHistos()
 delete the histograms and clean the memory
Bool_t FillHistos(UInt_t key, Bool_t found, Float_t* track, Float_t* cluster, Int_t* ctype, Float_t* )
 this method fill the histograms
 input: - key: unique key of the basic block
        - found: Boolean to asses whether a cluster has been associated to the track or not
        - tr[0],tr[1] local X and Z coordinates of the track prediction, respectively
        - tr[2],tr[3] error on local X and Z coordinates of the track prediction, respectively
        - clu[0],clu[1] local X and Z coordinates of the cluster associated to the track, respectively
        - clu[2],clu[3] error on local X and Z coordinates of the cluster associated to the track, respectively
        - csize[0][1] cluster size in X and Z, respectively
 output: kTRUE if filling was succesfull kFALSE otherwise
 side effects: updating of the histograms.

Bool_t WriteHistosToFile(TString filename = "PlaneEffSDDHistos.root", Option_t* option = "RECREATE")
 Saves the histograms into a tree and saves the trees into a file

Bool_t ReadHistosFromFile(TString filename = "PlaneEffSDDHistos.root")
 Read histograms from an already existing file

UInt_t Nblock() const
Int_t GetFound(const UInt_t key) const
Int_t GetTried(const UInt_t key) const
void ChipAndWingFromChip07(const Int_t chip07, UInt_t& chip, UInt_t& wing) const
{AliWarning("ChipAndWingFromChip07: you asked for a non existing chip"); return;}
Double_t PlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const
 Getters for average Plane efficiency (icluding dead/noisy)
Double_t ErrPlaneEff(const UInt_t key) const
Bool_t UpDatePlaneEff(const Bool_t Kfound, const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0)
 Methods to update the Plane efficiency (specific of the SDD segmentation)
Double_t LivePlaneEff(UInt_t key) const
enum {kNTimeBin = 174};   // granularity along drift direction (i.e. segmentation in r-phi)

  Plane efficiency for active  detector (excluding dead/noisy channels)
  access to DB is needed
Double_t ErrLivePlaneEff(UInt_t key) const
Bool_t AddFromCDB(AliCDBId* cdbId)
void SetCreateHistos(Bool_t his = kFALSE)
 Methods for dealing with auxiliary histograms
 method to set on/off the creation/updates of histograms (Histos are created/destroyed)