class THaBBShower: public THaPidDetector


THaBBShower

Shower counter class, describing a generic segmented shower detector
(preshower or shower).
Currently, only the "main" cluster, i.e. cluster with the largest energy
deposition is considered. Units of measurements are MeV for energy of
shower and centimeters for coordinates.


Function Members (Methods)

public:
THaBBShower(const char* name, const char* description = "", THaApparatus* a = 0)
virtual~THaBBShower()
voidTObject::AbstractMethod(const char* method) const
voidAddCluster(THaBBShowerCluster* clus)
voidAddCluster(THaBBShowerCluster& clus)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tTHaAnalysisObject::Begin(THaRunBase* r = 0)
Int_tBlockColRowToNumber(Int_t col, Int_t row)
virtual voidTObject::Browse(TBrowser* b)
boolTHaSpectrometerDetector::CalcInterceptCoords(THaTrack* track, Double_t& x, Double_t& y)
boolTHaSpectrometerDetector::CalcPathLen(THaTrack* track, Double_t& t)
boolTHaSpectrometerDetector::CheckIntercept(THaTrack* track)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTHaAnalysisObject::Clear(Option_t*)
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tCoarseProcess(TClonesArray& tracks)
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual Int_tDecode(const THaEvData&)
static Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix, const TObject* obj, const char* prefix, const char* here)
virtual voidTObject::Delete(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTObject::Dump() const
virtual Int_tTHaAnalysisObject::End(THaRunBase* r = 0)
virtual voidTObject::Error(const char* method, const char* msgfmt) 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 voidTNamed::FillBuffer(char*& buffer)
Int_tTHaDetectorBase::FillDetMap(const vector<Int_t>& values, UInt_t flags = 0, const char* here = "FillDetMap")
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Int_tFineProcess(TClonesArray& tracks)
static voidTHaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph)
THaApparatus*THaDetector::GetApparatus() const
Float_tGetBlockA_c(Int_t i) const
Float_tGetBlockdX()
Float_tGetBlockdY()
Float_tGetBlockdZ()
Float_tGetBlockX(Int_t i)
Float_tGetBlockY(Int_t i)
THaBBShowerCluster*GetClust(Int_t i)
const char*THaAnalysisObject::GetConfig() const
virtual const char*THaAnalysisObject::GetDBFileName() const
Int_tTHaAnalysisObject::GetDebug() const
THaDetMap*THaDetectorBase::GetDetMap() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetE(int i) const
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
virtual const char*TNamed::GetName() const
Int_tGetNBlocks()
Int_tGetNclust() const
Int_tGetNCols()
Int_tTHaDetectorBase::GetNelem() const
Int_tGetNhits() const
Int_tGetNRows()
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TVector3&THaDetectorBase::GetOrigin() const
const char*THaAnalysisObject::GetPrefix() const
const Float_t*THaDetectorBase::GetSize() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Float_tGetX(int i) const
Float_tTHaDetectorBase::GetXSize() const
Float_tGetY(int i) const
Float_tTHaDetectorBase::GetYSize() const
Float_tTHaDetectorBase::GetZSize() 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
THaAnalysisObject::EStatusTHaAnalysisObject::Init()
virtual THaAnalysisObject::EStatusTHaAnalysisObject::Init(const TDatime& run_time)
virtual Int_tTHaAnalysisObject::InitOutput(THaOutput*)
virtual voidTObject::Inspect() const
static Bool_tTHaAnalysisObject::IntersectPlaneWithRay(const TVector3& xax, const TVector3& yax, const TVector3& org, const TVector3& ray_start, const TVector3& ray_vect, Double_t& length, TVector3& intersect)
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTHaAnalysisObject::IsInit() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTHaAnalysisObject::IsOKOut()
Bool_tTObject::IsOnHeap() const
virtual Bool_tTHaPidDetector::IsPid()
virtual Bool_tTNamed::IsSortable() const
virtual Bool_tTHaNonTrackingDetector::IsTracking()
Bool_tTObject::IsZombie() const
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const DBRequest* request, const char* prefix = "", Int_t search = 0)
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const TagDef* tags, const char* prefix = "", Int_t search = 0)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Double_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Int_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, string& text)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, TString& text)
voidLoadMCHitAt(Double_t x, Double_t y, Double_t E)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static FILE*THaAnalysisObject::OpenFile(const char* name, const TDatime& date, const char* here = "OpenFile()", const char* filemode = "r", const int debug_flag = 1)
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)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidTHaDetectorBase::PrintDetMap(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidRemoveCluster(int i)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
static Int_tTHaAnalysisObject::SeekDBconfig(FILE* file, const char* tag, const char* label = "config", Bool_t end_on_tag = false)
static Int_tTHaAnalysisObject::SeekDBdate(FILE* file, const TDatime& date, Bool_t end_on_tag = false)
virtual voidTHaDetector::SetApparatus(THaApparatus*)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTHaAnalysisObject::SetConfig(const char* label)
virtual voidTHaAnalysisObject::SetDebug(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
static voidTHaAnalysisObject::SphToGeo(Double_t th_sph, Double_t ph_sph, Double_t& th_geo, Double_t& ph_geo)
THaAnalysisObject::EStatusTHaAnalysisObject::Status() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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()
static vector<std::string>THaAnalysisObject::vsplit(const string& s)
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:
boolTHaSpectrometerDetector::CalcTrackIntercept(THaTrack* track, Double_t& t, Double_t& ycross, Double_t& xcross)
voidClearEvent()
virtual voidTHaSpectrometerDetector::DefineAxes(Double_t rotation_angle)
virtual Int_tDefineVariables(THaAnalysisObject::EMode mode = kDefine)
Int_tTHaAnalysisObject::DefineVarsFromList(const VarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const RVarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix = "") const
voidDeleteArrays()
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
THaAnalysisObject*THaAnalysisObject::FindModule(const char* name, const char* classname, bool do_error = true)
static vector<std::string>THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()")
virtual const char*THaAnalysisObject::Here(const char*) const
virtual voidTHaDetector::MakePrefix()
voidTObject::MakeZombie()
virtual FILE*THaAnalysisObject::OpenFile(const TDatime& date)
virtual FILE*THaAnalysisObject::OpenRunDBFile(const TDatime& date)
static char*THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len)
virtual Int_tReadDatabase(const TDatime& date)
virtual Int_tTHaDetectorBase::ReadGeometry(FILE* file, const TDatime& date, Bool_t required = kFALSE)
virtual Int_tTHaAnalysisObject::ReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()

Data Members

public:
enum THaAnalysisObject::EStatus { kOK
kNotinit
kInitError
kFileError
};
enum THaAnalysisObject::EType { kVarDef
kRVarDef
};
enum THaAnalysisObject::EMode { kDefine
kDelete
};
enum THaAnalysisObject::EProperties { kNeedsRunDB
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
protected:
Float_tacc_chargeaccumulated charge
Double_tcos_angle
Float_t*fA[fNelem] Array of ADC amplitudes of blocks
Float_t*fA_c[fNelem] Array of corrected ADC amplitudes of blocks
Float_t*fA_p[fNelem] Array of ADC minus pedestal values of blocks
Float_tfAsum_cSum of blocks corrected ADC amplitudes
Float_tfAsum_pSum of blocks ADC minus pedestal values
THaBBShowerBlock***fBlkGrid[fNrows]
Float_t*fBlockX[fNelem] x positions (cm) of block centers
Float_t*fBlockY[fNelem] y positions (cm) of block centers
THaBBShowerBlock**fBlocks[fNelem] Array of blocks
UShort_t**fChanMapLogical channel numbers
THaBBShowerCluster**fClusters[fMaxNClust]
Bool_tfCoarseProcessed
TStringTHaAnalysisObject::fConfigConfiguration to use from database
Int_tTHaAnalysisObject::fDebugDebug level
THaDetMap*THaDetectorBase::fDetMapHardware channel map for this detector
Float_t*fE[fNClust] Energy (MeV) of clusters
Float_t*fE_c[fNClust] Corrected Energy (MeV) of clusters
Float_t*fEblk[fNclublk] Energies of blocks composing main cluster
Float_tfEminMinimum energy for a cluster center
Bool_tfFineProcessed
Float_t*fGain[fNelem] Gains for each block
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
Int_tfMaxNClust
Int_t*fMult[fNClust] Number of blocks in main cluster
UShort_t*fNChanNumber of channels for each module
TStringTNamed::fNameobject identifier
Int_t*fNblk[fNclublk] Numbers of blocks composing main cluster
Int_tfNclublkMax. number of blocks composing a cluster
Int_tfNclustNumber of clusters
Int_tfNcolsNumber of columns
Int_tTHaDetectorBase::fNelemNumber of detector elements (paddles, mirrors)
Int_tfNhitsNumber of hits
Int_tfNrowsNumber of rows
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
TVector3THaDetectorBase::fOriginCenter position of detector (m)
Float_t*fPed[fNelem] Pedestals for each block
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
Float_tTHaDetectorBase::fSize[3]Detector size in x,y,z (m) - x,y are half-widths
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
Float_tfTRXx position of track cross point
Float_tfTRYy position of track cross point
TStringTNamed::fTitleobject title
Float_t*fX[fNClust] x position (m) of clusters
TVector3THaSpectrometerDetector::fXaxX axis of the detector plane
Float_t*fY[fNClust] y position (m) of clusters
TVector3THaSpectrometerDetector::fYaxY axis of the detector plane
TVector3THaSpectrometerDetector::fZaxNormal to the detector plane
Double_tfdX
Double_tfdY
Double_tfdZ
Float_tgconstconst from gain correction
Float_tgslopeslope for gain correction
Double_tsin_angle
Double_ttan_angle

Class Charts

Inheritance Chart:
TObject
TNamed
THaAnalysisObject
THaDetectorBase
THaDetector
THaSpectrometerDetector
THaNonTrackingDetector
THaPidDetector
THaBBShower

Function documentation

THaBBShower(const char* name, const char* description = "", THaApparatus* a = 0)
 Constructor.
Int_t ReadDatabase(const TDatime& date)
 Read this detector's parameters from the database file 'fi'.
 This function is called by THaDetectorBase::Init() once at the
 beginning of the analysis.
 'date' contains the date/time of the run being analyzed.
Int_t DefineVariables(THaAnalysisObject::EMode mode = kDefine)
 Initialize global variables
~THaBBShower()
 Destructor. Removes internal arrays and global variables.
void DeleteArrays()
 Delete member arrays. Internal function used by destructor.
void ClearEvent()
 Reset all local data to prepare for next event.
Int_t Decode(const THaEvData& )
 Decode shower data, scale the data to energy deposition
 ( in MeV ), and copy the data into the following local data structure:

 fNhits           -  Number of hits on shower;
 fA[]             -  Array of ADC values of shower blocks;
 fA_p[]           -  Array of ADC minus ped values of shower blocks;
 fA_c[]           -  Array of corrected ADC values of shower blocks;
 fAsum_p          -  Sum of shower blocks ADC minus pedestal values;
 fAsum_c          -  Sum of shower blocks corrected ADC values;
Int_t CoarseProcess(TClonesArray& tracks)
 Reconstruct Clusters in shower detector and copy the data
 into the following local data structure:

 fNclust        -  Number of clusters in shower;
 fE             -  Energy (in MeV) of the "main" cluster;
 fX             -  X-coordinate (in cm) of the cluster;
 fY             -  Y-coordinate (in cm) of the cluster;
 fMult          -  Number of blocks in the cluster;
 fNblk[0]...[5] -  Numbers of blocks composing the cluster;
 fEblk[0]...[5] -  Energies in blocks composing the cluster;
 fTRX;          -  X-coordinate of track cross point with shower plane
 fTRY;          -  Y-coordinate of track cross point with shower plane

Int_t FineProcess(TClonesArray& tracks)
void AddCluster(THaBBShowerCluster* clus)
void AddCluster(THaBBShowerCluster& clus)
void RemoveCluster(int i)
Int_t BlockColRowToNumber(Int_t col, Int_t row)
void LoadMCHitAt(Double_t x, Double_t y, Double_t E)
Int_t GetNclust()
{ return fNclust; }
Int_t GetNhits()
{ return fNhits; }
Float_t GetE(int i) const
{ return fE[i]; }
Float_t GetX(int i) const
{ return fX[i]; }
Float_t GetY(int i) const
{ return fY[i]; }
Int_t GetNBlocks()
{ return (fNrows * fNcols);}
Float_t GetBlockX(Int_t i)
{ if(i < fNrows*fNcols) return fBlocks[i]->GetX(); else return 0.0;}
Float_t GetBlockY(Int_t i)
{ if(i < fNrows*fNcols) return fBlocks[i]->GetY(); else return 0.0;}
Float_t GetBlockdX()
{return fdX;}
Float_t GetBlockdY()
{return fdY;}
Float_t GetBlockdZ()
{return fdZ;}
Float_t GetBlockA_c(Int_t i) const
{ return fA_c[i]; }
Int_t GetNRows()
{return fNrows;}
Int_t GetNCols()
{return fNcols;}
THaBBShowerCluster* GetClust(Int_t i)
 Blocks should have a Z!!!
{ return fClusters[i]; }

Last update: Tue Jul 7 19:26:16 2009

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.