#include "htofhistfiller.h"
#include "hparamlist.h"
#include "hmonhist.h"
#include "htrendhist.h"
#include "hhistarray.h"
#include "tofdef.h"
#include "htofraw.h"
#include "htofcal.h"
#include "htofhit.h"
#include "hades.h"
#include "hevent.h"
#include "hcategory.h"
#include "TList.h"
#include "TArrayI.h"
#include "TString.h"
TArrayI HTofHistFiller::colorsSector;
TArrayI HTofHistFiller::colorsModule;
TArrayI HTofHistFiller::colorsCuts;
HHistArray* HTofHistFiller::hhits_raw=0;
HMonHist* HTofHistFiller::hmulttof_raw=0;
HMonHist* HTofHistFiller::hmulttoftofino_raw=0;
HMonHist* HTofHistFiller::htofpatternL_raw=0;
HMonHist* HTofHistFiller::htofpatternR_raw=0;
HMonHist2* HTofHistFiller::htoftdcL_raw=0;
HMonHist2* HTofHistFiller::htoftdcR_raw=0;
HMonHist2* HTofHistFiller::htofadcL_raw=0;
HMonHist2* HTofHistFiller::htofadcR_raw=0;
HMonHist2* HTofHistFiller::htoftdcSum_hit=0;
HMonHist2* HTofHistFiller::htoftdcDiff_hit=0;
HMonHist2* HTofHistFiller::htofadcSum_hit=0;
HMonHist2* HTofHistFiller::htofadcPos_hit=0;
HMonHist* HTofHistFiller::htofsum_hit=0;
HMonHist* HTofHistFiller::htoftheta_hit=0;
HMonHist* HTofHistFiller::htofphi_hit=0;
HMonHist2* HTofHistFiller::htofyvsx_hit=0;
HMonHist2* HTofHistFiller::htofmult_raw=0;
HMonHist2* HTofHistFiller::htofmulttemp_raw=0;
HTrendArray* HTofHistFiller::htofmulttrend_raw=0;
HMonHistAddon* HTofHistFiller::hhits_rawA=0;
HMonHistAddon* HTofHistFiller::hmulttof_rawA=0;
HMonHistAddon* HTofHistFiller::hmulttoftofino_rawA=0;
HMonHistAddon* HTofHistFiller::htofpatternL_rawA=0;
HMonHistAddon* HTofHistFiller::htofpatternR_rawA=0;
HMonHistAddon* HTofHistFiller::htoftdcL_rawA=0;
HMonHistAddon* HTofHistFiller::htoftdcR_rawA=0;
HMonHistAddon* HTofHistFiller::htofadcL_rawA=0;
HMonHistAddon* HTofHistFiller::htofadcR_rawA=0;
HMonHistAddon* HTofHistFiller::htoftdcSum_hitA=0;
HMonHistAddon* HTofHistFiller::htoftdcDiff_hitA=0;
HMonHistAddon* HTofHistFiller::htofadcSum_hitA=0;
HMonHistAddon* HTofHistFiller::htofadcPos_hitA=0;
HMonHistAddon* HTofHistFiller::htofsum_hitA=0;
HMonHistAddon* HTofHistFiller::htoftheta_hitA=0;
HMonHistAddon* HTofHistFiller::htofphi_hitA=0;
HMonHistAddon* HTofHistFiller::htofyvsx_hitA=0;
HMonHistAddon* HTofHistFiller::htofmult_rawA=0;
HMonHistAddon* HTofHistFiller::htofmulttemp_rawA=0;
HMonHistAddon* HTofHistFiller::htofmulttrend_rawA=0;
ClassImp(HTofHistFiller)
HTofHistFiller::HTofHistFiller(const Char_t* name,const Char_t* title)
: TNamed(name,title)
{
colorsSector.Set(6);
colorsModule.Set(4);
colorsCuts.Set(4);
}
HTofHistFiller::~HTofHistFiller()
{
}
void HTofHistFiller::fillRaw(HTofRaw* raw)
{
Float_t rtime=raw->getRightTime();
Float_t ltime=raw->getLeftTime();
Float_t rcharge=raw->getRightCharge();
Float_t lcharge=raw->getLeftCharge();
Int_t s=raw->getSector();
Int_t m=raw->getModule();
Int_t c=raw->getCell();
Int_t itof2= (s*64+m*8+c+1);
if(hhits_raw)hhits_raw->fill(0,s,m*8+c);
if(htofpatternL_raw && ltime>10 && ltime<3900)htofpatternL_raw->getP()->Fill(itof2);
if(htofpatternR_raw && rtime>10 && rtime<3900)htofpatternR_raw->getP()->Fill(itof2);
if(htoftdcL_raw )htoftdcL_raw->getP()->Fill(itof2,ltime);
if(htoftdcR_raw )htoftdcR_raw->getP()->Fill(itof2,rtime);
if(htofadcL_raw )htofadcL_raw->getP()->Fill(itof2,lcharge);
if(htofadcR_raw )htofadcR_raw->getP()->Fill(itof2,rcharge);
if(rtime>0)
{
if(htofmult_raw) htofmult_raw ->getP()->Fill(m*8+c,s);
if(htofmulttemp_raw)htofmulttemp_raw->getP()->Fill(m*8+c,s);
}
if(ltime>0)
{
if(htofmult_raw) htofmult_raw ->getP()->Fill(m*8+c,s);
if(htofmulttemp_raw)htofmulttemp_raw->getP()->Fill(m*8+c,s);
}
}
void HTofHistFiller::fillRawMult(Int_t tofmult,Int_t tofinomult)
{
if(hmulttof_raw)hmulttof_raw->getP()->Fill(tofmult);
if(hmulttoftofino_raw)hmulttoftofino_raw->getP()->Fill(tofmult+tofinomult);
}
void HTofHistFiller::fillHit(HTofHit* hit)
{
Int_t s =hit->getSector();
Int_t m =hit->getModule();
Int_t c =hit->getCell();
Float_t xpos =hit->getXpos();
Float_t tof =hit->getTof();
Float_t Edep =hit->getEdep();
Float_t xposAdc =hit->getXposAdc();
Int_t Adcflag =hit->getAdcFlag();
Float_t dist =0;
Float_t theta=0;
Float_t phi =0;
Float_t lab_x=0;
Float_t lab_y=0;
Float_t lab_z=0;
hit->getDistance(dist);
hit->getTheta(theta);
hit->getPhi(phi);
hit->getXYZLab(lab_x,lab_y,lab_z);
Int_t itof2= (s*64+m*8+c+1);
Float_t corrT=((dist-2100)/300);
Float_t time = (tof - corrT);
if(htoftdcSum_hit)htoftdcSum_hit->getP()->Fill(itof2,time);
if(htoftdcDiff_hit)htoftdcDiff_hit->getP()->Fill(itof2,xpos);
if(Adcflag==2)
{
if(htofadcSum_hit)htofadcSum_hit->getP()->Fill(itof2,Edep);
if(htofadcPos_hit)htofadcPos_hit->getP()->Fill(itof2,xposAdc);
}
if( htofsum_hit) htofsum_hit ->getP()->Fill(time);
if( htoftheta_hit)htoftheta_hit->getP()->Fill(theta);
if( htofphi_hit) htofphi_hit ->getP()->Fill(phi);
if( htofyvsx_hit) htofyvsx_hit ->getP()->Fill(lab_x,lab_y);
}
void HTofHistFiller::fillTrend()
{
for(Int_t s=0;s<6;s++){
if(htofmulttemp_raw&&htofmulttrend_raw){
htofmulttrend_raw->fill(0,s,htofmulttemp_raw->getP()->Integral(1,64,s+1,s+1));
}
}
if(htofmulttemp_raw)htofmulttemp_raw->getP()->Reset();
}
void HTofHistFiller::putTofParams(HParamList* l,TList* histpool)
{
Text_t mytemp[500];
l->add("colorsSector" ,colorsSector);
l->add("colorsModule" ,colorsModule);
l->add("colorsCuts" ,colorsCuts );
htofmult_rawA->getText(mytemp);
l->add("htofmult_raw" ,mytemp);
htofmulttemp_rawA->getText(mytemp);
l->add("htofmulttemp_raw" ,mytemp);
htofmulttrend_rawA->getText(mytemp);
l->add("htofmulttrend_raw" ,mytemp);
hhits_rawA->getText(mytemp);
l->add("hhits_raw" ,mytemp);
hmulttof_rawA->getText(mytemp);
l->add("hmulttof_raw" ,mytemp);
htofpatternL_rawA->getText(mytemp);
l->add("htofpatternL_raw" ,mytemp);
htofpatternR_rawA->getText(mytemp);
l->add("htofpatternR_raw" ,mytemp);
htoftdcL_rawA->getText(mytemp);
l->add("htoftdcL_raw" ,mytemp);
htoftdcR_rawA->getText(mytemp);
l->add("htoftdcR_raw" ,mytemp);
htofadcL_rawA->getText(mytemp);
l->add("htofadcL_raw" ,mytemp);
htofadcR_rawA->getText(mytemp);
l->add("htofadcR_raw" ,mytemp);
htoftdcSum_hitA->getText(mytemp);
l->add("htoftdcSum_hit" ,mytemp);
htoftdcDiff_hitA->getText(mytemp);
l->add("htoftdcDiff_hit" ,mytemp);
htofadcSum_hitA->getText(mytemp);
l->add("htofadcSum_hit" ,mytemp);
htofadcPos_hitA->getText(mytemp);
l->add("htofadcPos_hit" ,mytemp);
htofsum_hitA->getText(mytemp);
l->add("htofsum_hit" ,mytemp);
htoftheta_hitA->getText(mytemp);
l->add("htoftheta_hit" ,mytemp);
htofphi_hitA->getText(mytemp);
l->add("htofphi_hit" ,mytemp);
htofyvsx_hitA->getText(mytemp);
l->add("htofyvsx_hit" ,mytemp);
hmulttoftofino_rawA->getText(mytemp);
l->add("htofmulttoftofino_raw" ,mytemp);
}
Bool_t HTofHistFiller::getTofParams(HParamList* l,TList* histpool,TList* activeHists)
{
if(!(l->fill("colorsSector",&colorsSector))) return kFALSE;
if(!(l->fill("colorsModule",&colorsModule))) return kFALSE;
if(!(l->fill("colorsCuts" ,&colorsCuts ))) return kFALSE;
Text_t mytemp[500];
if(!(l->fill("hhits_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(hhits_rawA=new HMonHistAddon(mytemp));
if(hhits_rawA->getActive()==1)
{
activeHists->Add(hhits_raw=new HHistArray(*hhits_rawA));
hhits_raw->getP(0,0)->SetLineColor(colorsSector[0]);
hhits_raw->getP(0,1)->SetLineColor(colorsSector[1]);
hhits_raw->getP(0,2)->SetLineColor(colorsSector[2]);
hhits_raw->getP(0,3)->SetLineColor(colorsSector[3]);
hhits_raw->getP(0,4)->SetLineColor(colorsSector[4]);
hhits_raw->getP(0,5)->SetLineColor(colorsSector[5]);
}
}
if(!(l->fill("htofmult_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofmult_rawA=new HMonHistAddon(mytemp));
if(htofmult_rawA->getActive()==1)
{
activeHists->Add(htofmult_raw=new HMonHist2(*htofmult_rawA));
}
}
if(!(l->fill("htofmulttemp_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofmulttemp_rawA=new HMonHistAddon(mytemp));
if(htofmulttemp_rawA->getActive()==1)
{
activeHists->Add(htofmulttemp_raw=new HMonHist2(*htofmulttemp_rawA));
}
}
if(!(l->fill("htofmulttrend_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofmulttrend_rawA=new HMonHistAddon(mytemp));
if(htofmulttrend_rawA->getActive()==1)
{
activeHists->Add(htofmulttrend_raw=new HTrendArray(*htofmulttrend_rawA));
for(Int_t s=0;s<6;s++){
htofmulttrend_raw->getP(0,s)->SetLineColor(colorsSector[s]);
htofmulttrend_raw->getP(0,s)->SetMarkerColor(colorsSector[s]);
}
}
}
if(!(l->fill("hmulttof_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(hmulttof_rawA=new HMonHistAddon(mytemp));
if(hmulttof_rawA->getActive()==1)
{
activeHists->Add(hmulttof_raw=new HMonHist(*hmulttof_rawA));
}
}
if(!(l->fill("htofpatternL_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofpatternL_rawA=new HMonHistAddon(mytemp));
if(htofpatternL_rawA->getActive()==1)
{
activeHists->Add(htofpatternL_raw=new HMonHist(*htofpatternL_rawA));
}
}
if(!(l->fill("htofpatternR_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofpatternR_rawA=new HMonHistAddon(mytemp));
if(htofpatternR_rawA->getActive()==1)
{
activeHists->Add(htofpatternR_raw=new HMonHist(*htofpatternR_rawA));
}
}
if(!(l->fill("htoftdcL_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htoftdcL_rawA=new HMonHistAddon(mytemp));
if(htoftdcL_rawA->getActive()==1)
{
activeHists->Add(htoftdcL_raw=new HMonHist2(*htoftdcL_rawA));
}
}
if(!(l->fill("htoftdcR_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htoftdcR_rawA=new HMonHistAddon(mytemp));
if(htoftdcR_rawA->getActive()==1)
{
activeHists->Add(htoftdcR_raw=new HMonHist2(*htoftdcR_rawA));
}
}
if(!(l->fill("htofadcL_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofadcL_rawA=new HMonHistAddon(mytemp));
if(htofadcL_rawA->getActive()==1)
{
activeHists->Add(htofadcL_raw=new HMonHist2(*htofadcL_rawA));
}
}
if(!(l->fill("htofadcR_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofadcR_rawA=new HMonHistAddon(mytemp));
if(htofadcR_rawA->getActive()==1)
{
activeHists->Add(htofadcR_raw=new HMonHist2(*htofadcR_rawA));
}
}
if(!(l->fill("htoftdcSum_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htoftdcSum_hitA=new HMonHistAddon(mytemp));
if(htoftdcSum_hitA->getActive()==1)
{
activeHists->Add(htoftdcSum_hit=new HMonHist2(*htoftdcSum_hitA));
}
}
if(!(l->fill("htoftdcDiff_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htoftdcDiff_hitA=new HMonHistAddon(mytemp));
if(htoftdcDiff_hitA->getActive()==1)
{
activeHists->Add(htoftdcDiff_hit=new HMonHist2(*htoftdcDiff_hitA));
}
}
if(!(l->fill("htofadcSum_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofadcSum_hitA=new HMonHistAddon(mytemp));
if(htofadcSum_hitA->getActive()==1)
{
activeHists->Add(htofadcSum_hit=new HMonHist2(*htofadcSum_hitA));
}
}
if(!(l->fill("htofadcPos_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofadcPos_hitA=new HMonHistAddon(mytemp));
if(htofadcPos_hitA->getActive()==1)
{
activeHists->Add(htofadcPos_hit=new HMonHist2(*htofadcPos_hitA));
}
}
if(!(l->fill("htofsum_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofsum_hitA=new HMonHistAddon(mytemp));
if(htofsum_hitA->getActive()==1)
{
activeHists->Add(htofsum_hit=new HMonHist(*htofsum_hitA));
}
}
if(!(l->fill("htoftheta_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htoftheta_hitA=new HMonHistAddon(mytemp));
if(htoftheta_hitA->getActive()==1)
{
activeHists->Add(htoftheta_hit=new HMonHist(*htoftheta_hitA));
}
}
if(!(l->fill("htofphi_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofphi_hitA=new HMonHistAddon(mytemp));
if(htofphi_hitA->getActive()==1)
{
activeHists->Add(htofphi_hit=new HMonHist(*htofphi_hitA));
}
}
if(!(l->fill("htofyvsx_hit",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(htofyvsx_hitA=new HMonHistAddon(mytemp));
if(htofyvsx_hitA->getActive()==1)
{
activeHists->Add(htofyvsx_hit=new HMonHist2(*htofyvsx_hitA));
}
}
if(!(l->fill("htofmulttoftofino_raw",mytemp,500))) {return kFALSE;}
else
{
histpool->Add(hmulttoftofino_rawA=new HMonHistAddon(mytemp));
if(hmulttoftofino_rawA->getActive()==1)
{
activeHists->Add(hmulttoftofino_raw=new HMonHist(*hmulttoftofino_rawA));
}
}
return kTRUE;
}
Last change: Sat May 22 13:16:11 2010
Last generated: 2010-05-22 13:16
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.