#include "THiRAPixel.h"
#include "THiRA.h"
#include "TTarget.h"
#include <TClonesArray.h>
#include <TTree.h>
#include <TVector3.h>
ClassImp(THiRAPixel);
ClassImp(TTele);
THiRAPixel *THiRAPixel::AddHit(TCrange *p,Int_t *materials,TTele *tele,
Int_t stripEF,Int_t stripEB,UShort_t segCsI,
Int_t hit,UShort_t nCsIHits)
{
Clear();
TClonesArray &fHits = *tele->parent->fPixel;
THiRAPixel *pHit = new(fHits[hit]) THiRAPixel();
pHit->Clear();
TVector3 vtmp(tele->pixelMatrix[stripEB][stripEF]);
pHit->pixVec.SetXYZ(vtmp.X(),vtmp.Y(),vtmp.Z());
pHit->fTeleID = tele->GetTeleID();
pHit->EFstrip = (UShort_t)stripEF;
pHit->EBstrip = (UShort_t)stripEB;
pHit->CsISeg = (UShort_t)segCsI;
pHit->E_EF = tele->EF.E[stripEF];
pHit->E_EB = tele->EB.E[stripEB];
pHit->E_CsI = tele->CsI.E[segCsI];
pHit->ETot = pHit->E_EF+pHit->E_CsI;
pHit->fCsIHits = nCsIHits;
return pHit;
}
void THiRAPixel::Clear(Option_t *)
{
pixVec.SetXYZ(0,0,0);
pETot = 0;
dETot = 0;
tETot = 0;
He3ETot = 0;
He4ETot = 0;
fTeleID = 99;
DEstrip = 35;
EFstrip = 35;
EBstrip = 35;
CsISeg = 99;
fMult = 0;
E_DE = 0;
E_EF = 0;
E_EB = 0;
E_CsI = 0;
T_DE = 0;
T_EF = 0;
T_EB = 0;
T_CsI = 0;
}
void THiRAPixel::Calibrate()
{
}
void THiRAPixel::Calculate()
{
}
void THiRAPixel::Fill()
{
}
Int_t THiRAPixel::GetTower(THiRA *hira,Int_t face)
{
if(face==0 || face==1 || face==2) return kTowerMap[hira->GetTeleIndex(fTeleID)][face];
return -1;
}
Bool_t THiRAPixel::IsBad(THiRA *hira)
{
if(hira->tele[hira->GetTeleIndex(fTeleID)].DE.IsBad(DEstrip)) return kTRUE;
if(hira->tele[hira->GetTeleIndex(fTeleID)].EF.IsBad(EFstrip)) return kTRUE;
if(hira->tele[hira->GetTeleIndex(fTeleID)].EB.IsBad(EBstrip)) return kTRUE;
if(hira->tele[hira->GetTeleIndex(fTeleID)].CsI.IsBad(CsISeg)) return kTRUE;
return kFALSE;
}
Bool_t THiRAPixel::IsBad(THiRA *hira, Int_t id, Char_t *face, Int_t element)
{
if(strcmp(face,"DE")==0) return hira->tele[hira->GetTeleIndex(id)].DE.IsBad(element);
if(strcmp(face,"EF")==0) return hira->tele[hira->GetTeleIndex(id)].EF.IsBad(element);
if(strcmp(face,"EB")==0) return hira->tele[hira->GetTeleIndex(id)].EB.IsBad(element);
if(strcmp(face,"CsI")==0) return hira->tele[hira->GetTeleIndex(id)].CsI.IsBad(element);
return kFALSE;
}
void THiRAPixel::InitClass(TString name)
{
SetName(name);
}
void THiRAPixel::InitTree(TTree *tree)
{
fChain = tree;
fCurrent = -1;
b_fTeleID = fChain->GetBranch(fName+".fTeleID");
b_DEstrip = fChain->GetBranch(fName+".DEstrip");
b_EFstrip = fChain->GetBranch(fName+".EFstrip");
b_EBstrip = fChain->GetBranch(fName+".EBstrip");
b_CsISeg = fChain->GetBranch(fName+".CsISeg");
b_fCsIHits = fChain->GetBranch(fName+".fCsIHits");
b_fMult = fChain->GetBranch(fName+".fMult");
b_pETot = fChain->GetBranch(fName+".pETot");
b_dETot = fChain->GetBranch(fName+".dETot");
b_tETot = fChain->GetBranch(fName+".tETot");
b_He3ETot = fChain->GetBranch(fName+".He3ETot");
b_He4ETot = fChain->GetBranch(fName+".He4ETot");
b_E_DE = fChain->GetBranch(fName+".E_DE");
b_E_EF = fChain->GetBranch(fName+".E_EF");
b_E_EB = fChain->GetBranch(fName+".E_EB");
b_E_CsI = fChain->GetBranch(fName+".E_CsI");
b_T_DE = fChain->GetBranch(fName+".T_DE");
b_T_EF = fChain->GetBranch(fName+".T_EF");
b_T_EB = fChain->GetBranch(fName+".T_EB");
b_T_CsI = fChain->GetBranch(fName+".T_CsI");
}
void THiRAPixel::SetName(const Char_t *name)
{
fName = name;
}
void THiRAPixel::SetNameTitle(const Char_t *name, const Char_t *title)
{
fName = name;
fTitle = title;
}
void THiRAPixel::SetTitle(const Char_t *title)
{
fTitle = title;
}
Last change: Sun Dec 21 12:39:00 2008
Last generated: 2008-12-21 12:39
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.