ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HEmcDigitizer

class HEmcDigitizer: public HReconstructor


  HEmcDigitizer digitizes data, puts output values into cal data category

 Input data for digitization:
 Two types of HGeantEmc objects:
 1. Hit which has track number = -777 keeps integrated number of photo electrons
 2. Hit which has track number > 0 keeps a time of flight, momentum, track length and number of photo electrons

 Parameters for recalculating of the number of photo electrons to the energy deposit
 Parameters for the time and energy deposit smearings
 Parameter for the start signal smearing

 Two modes of reconstruction: simulation and embedding

 HEmcDigitizer
  collects all tracks in the cell,
  corrects GEANT time of flight to the time in the input EMC plane,
  sorts tracks by corrected time and assigns the cell time to the fastest track which has energy deposit above threshold,
  sorts tracks by energy and assigns the cell to the track which has maximal energy deposit.

 Digitizer retrieves a particle from track history which crosses parallel plane to EMC plane and distance to front of EMC is equal to zVertBorder.
 zVertBorder >= 0    EMC front plane is used
 zVertBorder = -130. RPC front plane is used (default value)


Function Members (Methods)

public:
HEmcDigitizer()
HEmcDigitizer(const Text_t* name, const Text_t* title)
virtual~HEmcDigitizer()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidHReconstructor::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Bool_tHReconstructor::connectTask(HTask* task, Int_t n = 0)
virtual voidTNamed::Copy(TObject& named) 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 voidTObject::Error(const char* method, const char* msgfmt) const
virtual Int_texecute()
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 voidTNamed::FillBuffer(char*& buffer)
virtual Bool_tfinalize()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual HTask*HReconstructor::getComposite()
virtual voidHReconstructor::getConnections()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Int_tgetEmbeddingMode() const
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_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual HTask*HTask::getOwner()
TObjArrayHReconstructor::getTable()
virtual HTask*HReconstructor::getTask(const Char_t* name)
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::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 Bool_tinit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tHReconstructor::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual voidHReconstructor::isTimed(Bool_t flag = kTRUE)
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual HTask*HReconstructor::next(Int_t& errCode)
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)
HTask&HTask::operator=(const HTask&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual voidHReconstructor::printTimer()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_treinit()
voidTObject::ResetBit(UInt_t f)
virtual voidHReconstructor::resetTimer()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidHReconstructor::setActive(Bool_t state)MENU
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tHTask::setConnections()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetEmbeddingMode(Int_t mode)
voidsetEnergyDepositCut(Double_t cut)
voidHTask::setManual()
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidHTask::setOwner(HTask* atask)
voidsetSignalVelocity(Double_t v)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetzVertBorder(Double_t vc)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
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 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
protected:
Int_tcellFromIndex(Int_t ind) const
Int_tcellObjectIndex(Int_t s, Int_t c) const
Int_tcellObjectsSize() const
voidclearCellobjects()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
HGeantEmc*getInputHit(HGeantEmc* pGeantEmc, Int_t& inputTrack) const
voidinitVariables()
voidTObject::MakeZombie()
Int_tsectorFromIndex(Int_t ind) const
Bool_tsetParameterContainers()

Data Members

protected:
vector<celldata*>cellobjectstemporary working array for digitized data
Int_tembeddingmodeswitch for keeping geant hits / realistic embedding
Float_tenergyDepositCutCut for the minimal energy deposit in the cell. It is used for time1 determination.
Bool_tHReconstructor::fActiveActive flag
HCategory*fCalCatCal data category
HEmcDigiPar*fDigiParDigitization parameters
HEmcDetector*fEmcDetEmcDetector
HCategory*fGeantEmcCatGeantEmc data category
HLinearCategory*fGeantKineCatGeantKine data category
HEmcGeomPar*fGeomParGeometry parameters
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
Bool_tHTask::fIsTimedtimer flag
HLocationfLocLocation for new object
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
HEmcSimulPar*fSimulParSimulation parameter: lookup table for PMT types
HCategory*fStartHitCatStartHit data category
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
Float_tfacEnergSmear[3]factor for energy smearing for different types of PMT
Float_thalfOfCellLengthIt is needed because HGeanEmc hits now are shifted by half of cell relative coor.system of EMC !
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
HIterator*iterGeantEmcIterator over catEmcGeantRaw category
HGeomTransformlabTrans[6]Transfomation lab. <-> emc_module
Bool_tHTask::manual
Int_tmaxCellmaximal number of cells (including spares)
HTask*HTask::owner
HEmcCellStatusPar*pStatuspar! pointer to calibration parameters
Float_tphot2Energy[3]mean energy deposit per photo electron for different types of PMT (1000./1306.) [MeV]
Float_tsigmaTtime resolution
Float_tsignalVelocityVelocity of the signal propagation along cell (default: speed of light in the vacuum)
Double_tzVertBordertracks without HGeantEmc hit but with vertex in region zVertBorder (coor.sys. of emc module)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HEmcDigitizer(void)
HEmcDigitizer(const Text_t* name, const Text_t* title)
~HEmcDigitizer(void)
void initVariables(void)
Bool_t init(void)
Bool_t setParameterContainers(void)
Bool_t reinit(void)
 sets some local variables read from initialized parameter container
Int_t execute(void)
 Digitization of GEANT hits and storage in HEmcCalSim
void clearCellobjects()
 deletes objects in working array and sets pointer to 0
 the vector is still not cleared
HGeantEmc* getInputHit(HGeantEmc* pGeantEmc, Int_t& inputTrack) const
 Return pointer to the first HGeantEmc hit for track pGeantEmc->getTrack() or
 parent track if it has HGeantEmc hit in this cell
 Return inputTrack: geant track number of the parent track of pGeantEmc->getTrack()
 which first reach EMC(or RPC) in this sector first
Bool_t finalize(void)
{return kTRUE;}
void setzVertBorder(Double_t vc)
{zVertBorder = vc;}
void setEnergyDepositCut(Double_t cut)
void setSignalVelocity(Double_t v)
void setEmbeddingMode(Int_t mode)
{embeddingmode = mode;}
Int_t getEmbeddingMode(void)
{return embeddingmode;}
Int_t cellObjectsSize(void)
{return 6 * emcMaxComponents;}
Int_t cellObjectIndex(Int_t s, Int_t c) const
{return s * emcMaxComponents +c;}
Int_t sectorFromIndex(Int_t ind) const
{return ind / emcMaxComponents;}
Int_t cellFromIndex(Int_t ind) const
{return ind % emcMaxComponents;}