class THiRA: public TObject


The THiRA class inherits from TObject. This Class provides the structure for the HiRA device. Raw event data is filled into the class members.

I. Philosophy

II. Unpacking

III. Coordinate System

IV. Important Data Members

III.a Readout Order

While using the ASIC electronics for digitization of signals generated in the HiRA Si detectors it has become apparent that corrections based on readout order must be applied. The following data members and function methods are important in dealing with these, as we have observed so far, constant shifts of channels.

Data Members
    (THiRASiDet) fCbSequence:    
    (THiRASiDet) fChSequence:
    (THiRASiDet) fHitSequence:
    (THiRASiDet) fHitSequence:
                 fHits[]:
Methods

IV. Random Number Generator

A few notes should be made regarding the radomization of integer type data to floating point types.

V. Examples

Related References

[1] Wallace, M.S., Famiano, M.A., van Goethem, M.J., Rogers, A.M., Lynch, W.G., Clifford, J., Delaunay, F., Lee, J., Labostov, S., Mocko, M., Morris, L., Moroni, A., Nett, B., Oostdyk, D.J., Krishnasamy, R., Tsang, M.B., de Souza, R.T., Hudan, S., Sobotka, L.G., Charity, R.J., Elson, J., and Engel, G.L.: The high resolution array (HiRA) for rare isotope beam experiments, Nuclear Inst. and Methods in Physics Research, A, Elsevier, 2007. [Full Text]

 

Function Members (Methods)

public:
THiRA()
THiRA(const THiRA&)
virtual~THiRA()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
voidCalculate()
Int_tCalibrate(Option_t* prefix = "", Option_t* path = "", Option_t* treeName = "", Option_t* option = "RECREATE")
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* option = "")
voidClearErr()
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidCopy(TObject& hira) const
voidCreateFolders()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidDraw(Option_t* option = "")
virtual Long64_tDraw(const Char_t* varexp, const Char_t* selection, Option_t* option = "", Option_t* drawType = "all")
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 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
Bool_tFill(Short_t energy, Short_t time, Short_t teleNum, Short_t faceNum, Short_t stripNum, Short_t cbSeq, Short_t chSeq, UInt_t hitSeq)
Bool_tFillCsI(Short_t energy, Short_t teleNum, Short_t csiNum)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tGenPrime(Option_t* prefix = "", Option_t* path = "", Option_t* treeName = "", Option_t* option = "RECREATE")
const Char_t*GetChipMapFile() const
const Char_t*GetCsIMapFile() const
const Char_t*GetCsIMapPath() const
Int_tGetCsIQuadIndex(Int_t xStrip, Int_t yStrip)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const Char_t*GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPadIndex(Int_t index)
TVector3GetPixVec(THiRA* hira)
const Char_t*GetReadoutFile() const
TTarget*GetTarget()
Int_tGetTeleIndex(Int_t id)
virtual const Char_t*GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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
voidInitBranch(TTree* tree, Option_t* stage)
Bool_tInitClass()
voidInitTree(TTree* tree)
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
Bool_tLoadAdcMap()
Bool_tLoadBadElements(Char_t* filePath)
Bool_tLoadCsICalibration(Char_t* filePath, Int_t nCal = 0)
Bool_tLoadCsISegVec(Char_t* filePath)
Bool_tLoadCsIVCalibration(Char_t* filePath)
Bool_tLoadPixelMatrix(Char_t* filePath)
Bool_tLoadReadoutShifts(Char_t* filePath)
Bool_tLoadSiCalibration(Char_t* filePath)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
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)
TObject&TObject::operator=(const TObject& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidPrintBad(Option_t*)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidResetCalibBranches()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSetAddRndm(Bool_t* AddRndm)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
Bool_tSetChipMapFile(Char_t* filePath)
Bool_tSetCsIMapFile(Char_t* filePath)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetEuler(Double_t phi, Double_t theta, Double_t psi)
voidSetName(const Char_t* name)
voidSetNameTitle(const Char_t* name, const Char_t* title)
static voidTObject::SetObjectStat(Bool_t stat)
Bool_tSetReadoutShiftPath(Char_t* filePath)
voidSetTarget(TTarget* target)
voidSetTitle(const Char_t* title = "")
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
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 Bool_tUnpack(UShort_t* p)
Bool_tUnpackCsI(UShort_t* p)
UShort_t*UnpackCsIEnergy(UShort_t* p)
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:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
Double_tCsIRawThresh! CsI multiplicity threshold.
Double_tSiRawThresh! Si multiplicity threshold.
THiRAAsicasic! ASIC class to hold unpacking data.
TBranch*b_fHits!
TBranch*b_fNwords! Words count branch.
TBranch*b_fPixel!
TBranch*b_fRawMult! Raw multiplicity branch.
TBranch*b_tele[16]! Telescope branch.
Bool_tfAddRndm! Add random number to convert from short data types to double.
TCrange*fCRange! Range-Energy range calculator.
TTree*fChain! pointer to the analyzed TTree or TChain
TTree*fClone! pointer to a cloned TTree or TChain
Bool_tfCorrectReadout! Apply readout order correction.
Int_tfCurrent! current Tree number in a TChain
Double_tfEulerPhi! Phi Euler angle.
Double_tfEulerPsi! Psi Euler angle.
Double_tfEulerTheta! Theata Euler angle.
Short_tfHits[4]Number of hits in each tower.
UShort_tfNwordsNumber of HiRA words in an event.
TClonesArray*fPixelCollection of hit telescope pixels.
TPolyMarker3D*fPixelView! Marker graph of loaded pixels. (OpenGL)
Short_tfRawMultTotal HiRA multiplicity
TTele*fTele[16]!
TFolder*f_HiRA! HiRA folder.
TFolder*f_input! Input-files folder.
TFolder*f_parameters! Parameters folder.
TFolder*f_pixelMatrix! Pixel position folder.
static TClonesArray*fgPixelCollection of hit telescope pixels.
TTeletele[16]! A HiRA Telescope array.
TListteleTListA HiRA Telescope collection.
protected:
Int_tfAnalysisState! Current analysis state of fChain.
TStringfName! Object identifier
TTarget*fTarget! Current target.
TStringfTitle! Object title
private:
Short_tCsIMap[21][32]! ADC VME slot and channel mapping.
vector<Short_t>adcList!
Short_tadcTeleMap[21][32]! ADC VME slot and channel mapping.
Char_t*chipMapFile! ASIC chip mapping filename.
Char_t*csiMapFile! CsI mapping filename.
Char_t*csiMapPath! CsI mapping file path.
Int_tfChanErr[4][15][32]! Errors related to channel addressing.
Int_tfChipErr[4][30]! Errors related to chip addressing.
TCanvas*fHiRACanvas!
TVector3fPixVec
Char_t*fReadoutShiftPath! Readout shift file path.
Int_tfTeleIndexMap[16]!

Class Charts

Inheritance Chart:
TObject
THiRA

Function documentation

THiRA(const THiRA& )
 -- Copy constructor.
void Copy(TObject& hira) const
 -- Copy this method.
void Calculate()
 -- Calculates all THiRA quantities.
 This method calls all calculate methods of any member classes of THiRA such
 as the Calculate() method of TFront, TTele, etc.  Any calculations related
 to this class, THiRA, are also done here.
Int_t Calibrate(Option_t* prefix = "", Option_t* path = "", Option_t* treeName = "", Option_t* option = "RECREATE")
 -- Calibrates THiRA components.
 Calibrates all elements in the THiRA class such as Si and CsI slopes and
 offsets.  Note that a calibration file must be loaded for any members that
 are to be calibrated.
void Clear(Option_t* option = "")
 -- Clears data members.

void ClearErr()
 -- Clear all data members related to counting errors.

void CreateFolders()
 -- Create HiRA related folders in the current root file.

Long64_t Draw(const Char_t* varexp, const Char_t* selection, Option_t* option = "", Option_t* drawType = "all")
 -- Draw an expression for multiple telescope.
 Many times when we wish to draw a histogram for HiRA we want to create it for
 all telescopes.  This method allows one to easily accomplish this task.

 1. varexp is the normal expression one would use EXCEPT without the tele#. prefix.
 2. selection is any condition put on the output.
 3. option is the typical Draw option such "colz","surf", etc.
 4. drawType must be set to "all" as this is the only option implemented.  This
    option produces a canvas with all telescopes drawn.

Bool_t Fill(Short_t energy, Short_t time, Short_t teleNum, Short_t faceNum, Short_t stripNum, Short_t cbSeq, Short_t chSeq, UInt_t hitSeq)
 -- Fill the telescope branches with data.
 The following operations occur,
     1. The CB and Hit sequences are set.
     2.
Bool_t FillCsI(Short_t energy, Short_t teleNum, Short_t csiNum)
 -- Fill the telescope CsI branches with data.

Int_t GetCsIQuadIndex(Int_t xStrip, Int_t yStrip)
 -- Get the index for the quadrant of silicon located behind a pixel.
Int_t GetPadIndex(Int_t index)
 -- Get the TPad index corresponding to the physical position of a telescope.
 When drawing histograms for HiRA it is sometimes desireable to create a
 canvas containing pads corresponding to each detector.  It is also convenient
 to draw these histograms in the actual order of the setup.  This method returns
 the index of a TPad defined by the towerMatrix[][] in the rootDefine.h file.
 This pad number should be the physical position of the detector in the setup.
Int_t GenPrime(Option_t* prefix = "", Option_t* path = "", Option_t* treeName = "", Option_t* option = "RECREATE")
 -- Generate HiRA primary data tree.

Int_t GetTeleIndex(Int_t id)
 -- Gets the telescope index of a telescope with id.
 There are two main integer numbers that describe a telescope.  The first is
 what we call the telescope id.  This is the number that is typically located
 on the back of the detector box.  It is the label for the telescope.

 The second is the telescope index.  This is the postion in the tele[] array.
 The purpose of this array is that it allows us to easily loop over all
 telescopes using a for() loop.

 For example, if we have 16 telescopes then the tele[] array will have 16
 elements.  The telescope index then runs from 0-15.  However, we may be using
 telescopes 7,0,1,2,3,4,5,6,8,9,10,11,12,16,17,19.  These are not consecutive
 numbers that are difficult to loop over.

 NOTE:  While this is one way to loop over telescopes there is a more object
 oriented method.  This method involves using the TIter class and iterating
 over the elements in the THiRA TList or an additional TObjArray.
void InitBranch(TTree* tree, Option_t* stage)
 --
 Initializes or creates all the branches and member branches for the THiRA
 class on the tree.  This is typically called after instanciating TTree and
 THiRA.  The branch structure will then be generated on the TTree.
Bool_t InitClass()
 --
 Loads the chip/telescope mapping for the THiRA class as well as initializing
 class variables for THiRA.
void InitTree(TTree* tree)
 -- Initializes a tree containing THiRA branches.

Bool_t LoadAdcMap()
 -- Load the adc mapping file.

Bool_t LoadBadElements(Char_t* filePath)
 --

Bool_t LoadCsICalibration(Char_t* filePath, Int_t nCal = 0)
 --
 Loads and parses the .vdef file containing the HiRA CsI slopes and offset
 values.  The filepath argument is the location of the calibration file.
Bool_t LoadCsISegVec(Char_t* filePath)
 -- Load the segment position vectors for all CsI crystals.
Bool_t LoadCsIVCalibration(Char_t* filePath)
 --
 Loads and parses the .vdef file containing the HiRA CsI voltage calibration
 values.  The filepath argument is the location of the calibration file.
Bool_t LoadPixelMatrix(Char_t* filePath)
 -- Load a HiRA pixel file.
 This file should contain the DESIGN VECTORS of each pixel in the array.
 A script should be used later for calculations using the MEASURED VECTORS.
Bool_t LoadReadoutShifts(Char_t* filePath)
 -- Load the HiRA readout order shift parameters.

 This file contains the readout shifts for each channel in HiRA.

 The telescopes are ordered starting at the bottom left, increasing as we
 move up a tower.  The number continues at the bottom of the next tower
 proceeding until the upper right of the array.

 This file and the LoadReadoutShift() method should be modified if a
 more complicated shift id needed.  This file format should satisfy most
 basic needs.

 The shift can be set per channel, per face, or per chip.  It is assumed
 that the highest order if O(5).

 *** SIMPLE PER CHANNEL SHIFT ***
 The format is IF Complexity==2,
    teleIndex   teleID   face   Complexity
 	O(0)	O(1) 	O(2) 	O(3) 	O(4) 	O(5) 	//CH0
	O(0) 	O(1) 	O(2) 	O(3) 	O(4) 	O(5)    //CH1
 	O(0)	O(1) 	O(2) 	O(3) 	O(4) 	O(5) 	//CH2
	O(0) 	O(1) 	O(2) 	O(3) 	O(4) 	O(5)    //CH3
	.	.	.	.	.	.
	.	.	.	.	.	.
	.	.	.	.	.	.

       and so on . . .

 *** SIMPLE PER CHIP SHIFT ***
 The format is IF Complexity==1, (EVEN->Chip 0,ODD->Chip 1)
    teleIndex   teleID   face   Complexity
 	O(0)	O(1) 	O(2) 	O(3) 	O(4) 	O(5) 	//CHIP0
	O(0) 	O(1) 	O(2) 	O(3) 	O(4) 	O(5)    //CHIP1

       and so on . . .

 *** SIMPLE PER FACE SHIFT ***
 The format is IF Complexity==0,
    teleIndex   teleID   face   Complexity
 	O(0)	O(1) 	O(2) 	O(3) 	O(4) 	O(5) 	//FACE

 	and so on . . .

Bool_t LoadSiCalibration(Char_t* filePath)
 -- Load a HiRA Si calibration file.
 Loads and parses the .vdef file containing the HiRA Si slopes and offset
 values.  The filepath argument is the location of the calibration file.
void ResetCalibBranches()
 --

void PrintBad(Option_t* )
 -- Print all set bad elements to the stdout.

Bool_t SetChipMapFile(Char_t* filePath)
 -- Set the path of the ASIC chip mapping file.

Bool_t SetCsIMapFile(Char_t* filePath)
 -- Set the CsI mapping file.

Bool_t SetReadoutShiftPath(Char_t* filePath)
 --
void SetName(const Char_t* name)
 -- Change (i.e. set) the name of the THiRA.

void SetNameTitle(const Char_t* name, const Char_t* title)
 -- Change (i.e. set) all the THiRA parameters (name and title).

void SetTitle(const Char_t* title = "")
 -- Change (i.e. set) the title of the THiRA.

Bool_t Unpack(UShort_t* p)
 -- Unpack a HiRA event.
 This functions unpacks the raw data contained in a HiRA packet within
 an event data buffer.  The argument is a pointer which is the location of
 beginning of the packet.

 When unpacking data from an event file this function will typically be
 called whenever a HiRA packet tag is found.  (Packet id's are defined in
 the file packetID.h).

 There has been some confusion regarding the mapping of the strips to their
 respective chip and channel that is written to the event file.

 Typically,
 1.  The dE and EF strips are vertical.  The EB strips are horizontal.
 2.  Chip 0 is the first chip readout.
 3.  The chipboards are readout from the bottom slot on a MB to the top.
 4.  The convention is to have the upper left pixel of the detector to be (0,0)
     so that the detector pixels are elements of a matrix.
 5.  The dE detector is connected in the same way as the EF.  HOWEVER, when
     going through external preamps and the pinout is changed!!!  Therefore dE
     strips may map differently than below.

 Chip 0 is PIN #0 on chipboard (even PINS).
 Chip 1 is PIN #1 on chipboard (odd  PINS).

 Ch          15 15 14 14 13 13 12 12 11 11 10 10 09 09 08 08 07 07 06 06 05 05 04 04 03 03 02 02 01 01 00 00

    PIN      31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

       strip 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
             __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 00  00  00 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 00  01  01 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 01  02  02 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 01  03  03 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 02  04  04 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 02  05  05 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 03  06  06 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 03  07  07 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 04  08  08 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 04  09  09 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 05  10  10 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 05  11  11 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 06  12  12 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|  ^
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 06  13  13 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|  |
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 07  14  14 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|  EB
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 07  15  15 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|  |
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 08  16  16 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|  V
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 08  17  17 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 09  18  18 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 09  19  19 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 10  20  20 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 10  21  21 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 11  22  22 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 11  23  23 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 12  24  24 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 12  25  25 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 13  26  26 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 13  27  27 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 14  28  28 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 14  29  29 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 15  30  30 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|
            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
 15  31  31 |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|

                                                <--- EF --->


Bool_t UnpackCsI(UShort_t* p)
 -- Unpack raw CsI data.

UShort_t* UnpackCsIEnergy(UShort_t* p)
 -- Unpack the HiRA CsI energies.

THiRA()
{}
~THiRA()
{}
const Char_t * GetName() const
{ return fName; }
const Char_t * GetTitle() const
{ return fTitle; }
void Draw(Option_t* option = "")
{ Draw(option,"","","all");}
const Char_t * GetChipMapFile() const
{return chipMapFile;}
const Char_t * GetCsIMapFile() const
{return csiMapFile;}
const Char_t * GetCsIMapPath() const
{return csiMapPath;}
const Char_t * GetReadoutFile() const
{return fReadoutShiftPath;}
TTarget * GetTarget()
{return fTarget;}
TVector3 GetPixVec(THiRA* hira)
void SetAddRndm(Bool_t* AddRndm)
{fAddRndm=AddRndm;}
void SetEuler(Double_t phi, Double_t theta, Double_t psi)
void SetTarget(TTarget* target)
{fTarget = target;}

Author: Andrew M. Rogers, NSCL 07/01/2006
Last change: Sun Dec 21 12:38:47 2008
Last generated: 2008-12-21 12:38
Copyright (C) 2006-2008 Andrew M. Rogers

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.