
| AliITSPlaneEffSDD() | |
| AliITSPlaneEffSDD(const AliITSPlaneEffSDD& source) | |
| virtual | ~AliITSPlaneEffSDD() |
| void | TObject::AbstractMethod(const char* method) const |
| virtual Bool_t | AddFromCDB() |
| Bool_t | AddFromCDB(AliCDBId* cdbId) |
| virtual void | TObject::AppendPad(Option_t* option = "") |
| virtual void | TObject::Browse(TBrowser* b) |
| void | ChipAndWingFromChip07(const Int_t chip07, UInt_t& chip, UInt_t& wing) const |
| static TClass* | Class() |
| virtual const char* | TObject::ClassName() const |
| virtual void | TObject::Clear(Option_t* = "") |
| virtual TObject* | TObject::Clone(const char* newname = "") const |
| virtual Int_t | TObject::Compare(const TObject* obj) const |
| virtual void | TObject::Delete(Option_t* option = "")MENU |
| virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
| virtual void | TObject::Draw(Option_t* option = "") |
| virtual void | TObject::DrawClass() constMENU |
| virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
| virtual void | TObject::Dump() constMENU |
| virtual Double_t | ErrLivePlaneEff(UInt_t key) const |
| Double_t | ErrLivePlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const |
| virtual void | TObject::Error(const char* method, const char* msgfmt) const |
| Double_t | ErrPlaneEff(const UInt_t key) const |
| Double_t | ErrPlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const |
| virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
| virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
| virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
| virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
| virtual Bool_t | FillHistos(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_t | GetBlockBoundaries(const UInt_t key, Float_t& xmn, Float_t& xmx, Float_t& zmn, Float_t& zmx) const |
| virtual Bool_t | AliITSPlaneEff::GetCreateHistos() const |
| virtual Option_t* | TObject::GetDrawOption() const |
| static Long_t | TObject::GetDtorOnly() |
| Int_t | GetFound(const UInt_t key) const |
| virtual Double_t | GetFracBad(const UInt_t key) const |
| virtual Double_t | GetFracLive(const UInt_t key) const |
| virtual const char* | TObject::GetIconName() const |
| UInt_t | GetKey(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const |
| virtual UInt_t | GetKeyFromDetLocCoord(Int_t ilay, Int_t idet, Float_t locx, Float_t locz) const |
| virtual const char* | TObject::GetName() const |
| virtual Int_t | AliITSPlaneEff::GetNTracksForGivenEff(Double_t eff, Double_t RelErr) const |
| virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
| static Bool_t | TObject::GetObjectStat() |
| virtual Option_t* | TObject::GetOption() const |
| virtual void | AliITSPlaneEff::GetPlaneEff(Int_t nfound, Int_t ntried, Double_t& eff, Double_t& err) const |
| Int_t | AliITSPlaneEff::GetRunNumber() const |
| virtual const char* | TObject::GetTitle() const |
| Int_t | GetTried(const UInt_t key) const |
| virtual UInt_t | TObject::GetUniqueID() const |
| virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
| virtual ULong_t | TObject::Hash() const |
| virtual void | TObject::Info(const char* method, const char* msgfmt) const |
| virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
| virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
| virtual void | AliITSPlaneEff::InitCDB() |
| virtual void | TObject::Inspect() constMENU |
| void | TObject::InvertBit(UInt_t f) |
| virtual TClass* | IsA() const |
| virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
| virtual Bool_t | TObject::IsFolder() const |
| Bool_t | TObject::IsOnHeap() const |
| virtual Bool_t | TObject::IsSortable() const |
| Bool_t | TObject::IsZombie() const |
| virtual Double_t | LivePlaneEff(UInt_t key) const |
| Double_t | LivePlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const |
| virtual void | TObject::ls(Option_t* option = "") const |
| void | TObject::MayNotUse(const char* method) const |
| virtual UInt_t | Nblock() const |
| virtual Bool_t | TObject::Notify() |
| void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
| static void | TObject::operator delete(void* ptr) |
| static void | TObject::operator delete(void* ptr, void* vp) |
| static void | TObject::operator delete[](void* ptr) |
| static void | TObject::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 void | TObject::Paint(Option_t* option = "") |
| virtual Double_t | PlaneEff(const UInt_t key) const |
| Double_t | PlaneEff(const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) const |
| virtual void | TObject::Pop() |
| virtual void | TObject::Print(Option_t* option = "") const |
| virtual Int_t | TObject::Read(const char* name) |
| virtual Bool_t | ReadFromCDB() |
| virtual Bool_t | ReadHistosFromFile(TString filename = "PlaneEffSDDHistos.root") |
| virtual void | TObject::RecursiveRemove(TObject* obj) |
| void | TObject::ResetBit(UInt_t f) |
| virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
| virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
| void | TObject::SetBit(UInt_t f) |
| void | TObject::SetBit(UInt_t f, Bool_t set) |
| virtual void | SetCreateHistos(Bool_t his = kFALSE) |
| void | AliITSPlaneEff::SetDefaultStorage(const char* uri) |
| virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
| static void | TObject::SetDtorOnly(void* obj) |
| static void | TObject::SetObjectStat(Bool_t stat) |
| void | AliITSPlaneEff::SetRunNumber(Int_t n) |
| virtual void | TObject::SetUniqueID(UInt_t uid) |
| virtual void | ShowMembers(TMemberInspector&) |
| virtual void | Streamer(TBuffer&) |
| void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
| virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
| Bool_t | TObject::TestBit(UInt_t f) const |
| Int_t | TObject::TestBits(UInt_t f) const |
| virtual Bool_t | UpDatePlaneEff(const Bool_t Kfound, const UInt_t key) |
| Bool_t | UpDatePlaneEff(const Bool_t Kfound, const UInt_t mod, const UInt_t chip, const UInt_t wing, const UInt_t subw = 0) |
| virtual void | TObject::UseCurrentStyle() |
| virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
| virtual Bool_t | WriteHistosToFile(TString filename = "PlaneEffSDDHistos.root", Option_t* option = "RECREATE") |
| virtual Bool_t | WriteIntoCDB() const |
| void | ChipAndWingAndSubWingFromLocCoor(Float_t locx, Float_t locz, UInt_t& chip, UInt_t& wing, UInt_t& subw) const |
| void | ChipAndWingFromAnode(const UInt_t anode, UInt_t& chip, UInt_t& wing) const |
| UInt_t | ChipFromAnode(const UInt_t anode) const |
| virtual void | Copy(TObject& obj) const |
| virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
| void | GetAllFromKey(const UInt_t key, UInt_t& mod, UInt_t& chip, UInt_t& wing, UInt_t& subw) const |
| void | GetBadInBlock(const UInt_t key, UInt_t& bad) const |
| UInt_t | GetChipFromKey(const UInt_t key) const |
| Int_t | GetMissingTracksForGivenEff(Double_t eff, Double_t RelErr, UInt_t im, UInt_t ic, UInt_t iw, UInt_t isw = 0) const |
| UInt_t | GetModFromKey(const UInt_t key) const |
| UInt_t | GetSubWingFromKey(const UInt_t key) const |
| UInt_t | GetWingFromKey(const UInt_t key) const |
| void | TObject::MakeZombie() |
| void | AliITSPlaneEff::NotImplemented(const char* method) const |
| UInt_t | SubWingFromTimeBin(const Int_t tb, const Int_t ntb) const |
| UInt_t | WingFromAnode(const UInt_t anode) const |
| virtual void | CopyHistos(AliITSPlaneEffSDD& target) const |
| virtual void | DeleteHistos() |
| virtual void | InitHistos() |
| 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 | ||
| }; |
| TString | AliITSPlaneEff::fCDBUri | ! Uri of the default CDB storage |
| Int_t | fFound[2080] | number of associated clusters in a given block |
| Bool_t | AliITSPlaneEff::fHis | ! if true, then histograms are created and filled |
| Bool_t | AliITSPlaneEff::fInitCDBCalled | ! flag to check if CDB storages are already initialized |
| Int_t | AliITSPlaneEff::fRunNumber | ! run number (to access CDB) |
| Int_t | fTried[2080] | number of tracks used for efficiency evaluation |
| Inheritance Chart: | ||||||||||||||||
|
fHis(s.fHis),
fHisResXclu(0),
Copy Constructor
Inputs:
AliITSPlaneEffSDD &s The original class for which
this class is a copy of
Outputs:
none.
Return:
Add-to-me operator
Inputs:
const AliITSPlaneEffSDD &add simulation class to be added
Outputs:
none.
Return:
none
Assignment operator
Inputs:
AliITSPlaneEffSDD &s The original class for which
this class is a copy of
Outputs:
none.
Return:
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
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.;} 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.;}Update efficiency for a basic block
{AliError("UpDatePlaneEff: you asked for a non existing block"); return kFALSE;}Retun the chip number [0,3] and the wing number [0,1] given the anode number input: anode number [0,511]
Retun the chip number [0,3] given the anode number input: anode number [0,511]
return the wing number [0,1] given the anode number input: anode number [0,511]
get key given a basic block
{AliError("GetKey: you asked for a non existing block"); return 99999;}get module, chip, wing and subwing from a key
returns plane efficieny after adding the fraction of sensor which is bad
Compute the number of bad (dead+noisy) anodes inside a block (it depends on the chip, not on the sub-wing)
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
AliITSgeom* geom=NULL; AliITSsegmentationSDD* sdd=new AliITSsegmentationSDD(geom);
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;} 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.
Saves the histograms into a tree and saves the trees into a file
Read histograms from an already existing file
{AliWarning("ChipAndWingFromChip07: you asked for a non existing chip"); return;}Getters for average Plane efficiency (icluding dead/noisy)
Methods to update the Plane efficiency (specific of the SDD segmentation)
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
Methods for dealing with auxiliary histograms method to set on/off the creation/updates of histograms (Histos are created/destroyed)