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)