_HADES_CLASS_DESCRIPTION HTofinofDigitizer digitizes HGeant data, puts output values into cal data category The input data are read from the HGeantTof category. After calculating TOF and Charge of the hit etc the output is stored in the HTofinoCalSim category. ---------------------- ----------- | HTofinoCalibrater | | HGeantTof | | (embedding mode) | \ ----------- | | \ || ---------------------- \ || input to digitizer \ \ --------------- read real ------------------ | HTofinoCalSim | ------------> | HTofinoDigitizer | --------------- <----------- | | write output ------------------ In the case of TRACK EMBEDDING of simulated tracks into experimental data the real data are written by the HTofinoCalibrater into HTofinoCalSim category. The real hits are taken into account by the digitizer (adding of charges, sorting by first hit in photo multiplier). The embedding mode is recognized automatically by analyzing the gHades->getEmbeddingMode() flag. Mode ==0 means no embedding ==1 realistic embedding (first real or sim hit makes the game) ==2 keep GEANT tracks (as 1, but GEANT track numbers will always win against real data. besides the tracknumber the output will be the same as in 1) The output object HTofinoCalSim contains additional to the tof and charge a list of up to 5 tracks hitting the tofino cell. The track numbers are stored by increasing tof. In parallel the tof from GEANT is stored in a list. In case of embedding the first and second track recieved via getTrack() contains real or geant data depending wheater or not there has been a embedded track and sim or real was first. In case of no embedded track in the cell the list contains only the geant hits. tofinocal->getNHit() number of hits in the cell (val 1-5) tofinocal->getTrack(0) contains real data / geant data (real if real was faster) tofinocal->getTrack(1) contains real data / geant data (sim if real was faster) tofinocal->getTrack(2) contains geant data . . . tofinocal->getTrack(4) contains geant data For the suppression of secondaries produced in the TOF itself there are several configuration possibilities: They can be switched via setStoreFirstTrack(Int_t flag): flag == 0 realistic (secondaries included) 1 primary particle is stored 2 (default) the first track number entering the tof in SAME SECTOR is stored 3 as 2 but SAME SECTOR && CELL To make the influence of the above selections easily visible in the output HTofCalSim a debug mode can be switched with void setDebug(Bool_t flag). In this case the track numbers affected by the criteria 1-3 will have negative track numbers (multiples of -200). The multiplication factor gives the number of steps from the start point to the stored track (chain of secondaries). In case 1 it is always -200 if a particle has not been a primary one.
HTofinoDigitizer() | |
HTofinoDigitizer(const Text_t* name, const Text_t* title) | |
virtual | ~HTofinoDigitizer() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | HReconstructor::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TNamed::Clear(Option_t* option = "") |
virtual TObject* | TNamed::Clone(const char* newname = "") const |
virtual Int_t | TNamed::Compare(const TObject* obj) const |
virtual Bool_t | HReconstructor::connectTask(HTask* task, Int_t n = 0) |
virtual void | TNamed::Copy(TObject& named) const |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
void | doFinalCheckOnArray() |
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 void | TObject::Error(const char* method, const char* msgfmt) const |
virtual Int_t | execute() |
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 |
void | fillArray() |
virtual void | TNamed::FillBuffer(char*& buffer) |
void | fillOutput() |
virtual Bool_t | finalize() |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual HTask* | HReconstructor::getComposite() |
virtual void | HReconstructor::getConnections() |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TNamed::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual HTask* | HTask::getOwner() |
TObjArray | HReconstructor::getTable() |
virtual HTask* | HReconstructor::getTask(const Char_t* name) |
virtual const char* | TNamed::GetTitle() const |
static HTofinoDigitizer* | getTofinoDigtizer() |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TNamed::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 Bool_t | init() |
Bool_t | initParContainer() |
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 | HReconstructor::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TNamed::IsSortable() const |
virtual void | HReconstructor::isTimed(Bool_t flag = kTRUE) |
Bool_t | TObject::IsZombie() const |
virtual void | TNamed::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual HTask* | HReconstructor::next(Int_t& errCode) |
virtual Bool_t | TObject::Notify() |
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) |
HTask& | HTask::operator=(const HTask&) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TNamed::Print(Option_t* option = "") const |
virtual void | HReconstructor::printTimer() |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual Bool_t | HTask::reinit() |
void | TObject::ResetBit(UInt_t f) |
virtual void | HReconstructor::resetTimer() |
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 | HReconstructor::setActive(Bool_t state)MENU |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual Bool_t | HTask::setConnections() |
void | setDebug(Bool_t flag) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
void | HTask::setManual() |
virtual void | TNamed::SetName(const char* name)MENU |
virtual void | TNamed::SetNameTitle(const char* name, const char* title) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | HTask::setOwner(HTask* atask) |
void | setStoreFirstTrack(Int_t flag) |
virtual void | TNamed::SetTitle(const char* title = "")MENU |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual Int_t | TNamed::Sizeof() const |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& 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 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 void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | TObject::MakeZombie() |
Int_t | findFirstHitInTofino(HGeantTof* pOld, HGeantTof** pNew, Int_t* count) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
Bool_t | HReconstructor::fActive | Active flag |
TList* | HReconstructor::fHistograms | List of histograms generated by this reconstructor. |
Bool_t | HTask::fIsTimed | timer flag |
TString | TNamed::fName | object identifier |
TObjArray | HReconstructor::fOutputs | |
TStopwatch | HReconstructor::fTimer | Task timer |
TString | TNamed::fTitle | object title |
Bool_t | HTask::isConnected | |
Bool_t | HTask::isInitialised | |
Bool_t | HTask::manual | |
HTask* | HTask::owner |
TObjArray* | array | ! temporary array for HTofinoCalSim objects |
Int_t | ctTracks[6][4] | ! temporary array |
Bool_t | debug | ! change stored tracknumbers (when storeFirstTrack!=0) |
HCategory* | fCalCat | ! Pointer to Cal data category |
HCategory* | fGeantCat | ! Pointer to HGeant data category |
HLinearCategory* | fGeantKineCat | ! Pointer to GeantKine data category |
HLocation | fLoc | ! Location for new object |
HLocation | ffLoc | ! Location for new object |
Float_t | geaTofTracks[6][4][10] | ! temporary array |
HIterator* | iterCal | ! Iterator over HTofinoCalSim category |
HIterator* | iterGeant | ! Iterator over HGeantTof category |
Int_t | numTracks[6][4][10] | ! temporary array |
static HTofinoDigitizer* | pTofinoDigi | ! pointer to this |
HTofinoDigitPar* | pTofinoDigitPar | ! Digit parameters |
Int_t | storeFirstTrack | ! flag: |
Float_t | tdcTofTracks[6][4][10] | ! temporary array |
fill temporary array from geant. all sim data will be collected and in the end will be a check on the total charge etc. in doFinalCheckOnArray() before it is written to the output category (and in embedding mode merged with the real data) in fillOutput()
now do the final check on collected data and convert times from channel to nanosecond to write to output category (and merge with real data in fillOutput() ) fill list of tracks/geaTof other than the fastest hit
write to output category (and merge with real data) fill list of tracks/geaTof other than the fastest hit
find the first track ID entering the TOFINO Used to suppress the secondaries created in the TOF itself. 0 (default) = realistic (secondaries included) 1 primary particle is stored 2 the first track number entering the tof in SAME SECTOR is stored 3 as 2 but SAME SECTOR && ROD