--- tof/flight/ToFReprocessing/ToFreproc.cpp 2008/11/28 14:58:50 1.1 +++ tof/flight/ToFReprocessing/ToFreproc.cpp 2014/01/17 15:16:24 1.7 @@ -44,7 +44,8 @@ extern "C" int toftrk(); ///extern "C" int toftrk(float); #define rdtofcal rdtofcal_ -extern "C" int rdtofcal(char [], int *); +//extern "C" int rdtofcal(char [], int *); +extern "C" int rdtofcal(const char *, int *); using namespace std; @@ -57,6 +58,7 @@ TString OUTF; TString LIST; TString OPTIONS; +TString CALIBF; PamLevel2 *pam_event = NULL; @@ -72,11 +74,12 @@ // read input file/list // -------------------- pam_event = new PamLevel2(ddir,list,options); + pam_event->SetSELLI(2); TTree::SetMaxTreeSize(1000*Long64_t(2000000000)); - // - TString outfile_t =0; + // + TString outfile_t = ""; outfile_t = OUTF; - outfile_t.Append("b.root"); + outfile_t.Append(".root"); TFile *outft = (TFile*)gROOT->FindObject(outfile_t); if (outft) outft->Close(); outft = new TFile(outfile_t,"RECREATE"); @@ -88,6 +91,7 @@ // outft->cd(); ToFLevel2 *tof = new ToFLevel2(); + ToFdEdx *tofdedx = new ToFdEdx(); TTree *toft = new TTree("ToF","PAMELA Level2 ToF data"); toft->SetAutoSave(900000000000000LL); tof->Set();//ELENA **TEMPORANEO?** @@ -97,6 +101,10 @@ // Int_t ntrkentry = 0; Int_t npmtentry = 0; + Float_t xleft=0; + Float_t xright=0; + Float_t yleft=0; + Float_t yright=0; // ULong64_t nevents = pam_event->GetEntries(); printf("\n\n Running on %llu events \n\n",nevents); @@ -145,7 +153,7 @@ for(ULong64_t iev=0; ievGetRunInfo()->RUNHEADER_TIME,(int)myrun,(int)mysrun); mysrun = myrun; // - Int_t error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,201,dbc); // parameters stored in DB in GL_PRAM table + + + + + Int_t error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,204,dbc); // parameters stored in DB in GL_PRAM table + if ( error<0 ) { + return(1); + }; + // + tofdedx->ReadParAtt((glparam->PATH+glparam->NAME).Data()); + printf(" Reading Attenuation file: %s \n",(glparam->PATH+glparam->NAME).Data()); + + // + error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,205,dbc); // parameters stored in DB in GL_PRAM table + if ( error<0 ) { + return(1); + }; + // + tofdedx->ReadParPos((glparam->PATH+glparam->NAME).Data()); + printf(" Reading desaturation1 file: %s \n",(glparam->PATH+glparam->NAME).Data()); + + // + error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,206,dbc); // parameters stored in DB in GL_PRAM table + if ( error<0 ) { + return(1); + }; + // + tofdedx->ReadParBBneg((glparam->PATH+glparam->NAME).Data()); + printf(" Reading BBneg file: %s \n",(glparam->PATH+glparam->NAME).Data()); + + // + error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,207,dbc); // parameters stored in DB in GL_PRAM table + if ( error<0 ) { + return(1); + }; + // + tofdedx->ReadParBBpos((glparam->PATH+glparam->NAME).Data()); + printf(" Reading BBpos file: %s \n",(glparam->PATH+glparam->NAME).Data()); + + // + error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,208,dbc); // parameters stored in DB in GL_PRAM table + if ( error<0 ) { + return(1); + }; + // + tofdedx->ReadParDesatBB((glparam->PATH+glparam->NAME).Data()); + printf(" Reading desaturation2 file: %s \n",(glparam->PATH+glparam->NAME).Data()); + + tofdedx->CheckConnectors(pam_event->GetRunInfo()->RUNHEADER_TIME,glparam,dbc); + + + error=glparam->Query_GL_PARAM(pam_event->GetRunInfo()->RUNHEADER_TIME,201,dbc); // parameters stored in DB in GL_PRAM table if ( error<0 ) { return(1); }; @@ -175,111 +234,130 @@ // if ( (UInt_t)glparam->TO_TIME != (UInt_t)4294967295UL ) defcal = false; // - Int_t nlen = (Int_t)(glparam->PATH+glparam->NAME).Length(); - rdtofcal((char *)(glparam->PATH+glparam->NAME).Data(),&nlen); + TString pippo=(glparam->PATH+glparam->NAME).Data(); + //Int_t nlen = (Int_t)(glparam->PATH+glparam->NAME).Length(); + //rdtofcal((char *)(glparam->PATH+glparam->NAME).Data(),&nlen); + Int_t nlen = (Int_t)pippo.Length(); + rdtofcal(pippo.Data(),&nlen); // - }; - // - -//================================================================ -//================================================================== -//--- Define absolute time - Float_t tabs=pam_event->GetOrbitalInfo()->absTime; - -//================================================================== -Float_t dedx_corr_m[2000][48],dedx_corr[48]; -Double_t mtime[2000],t1,t2,tm; -Float_t yhelp1,yhelp2,slope,inter,thelp1,thelp2; -Float_t xmean1,xwidth1; - -Int_t ical,ii,j,jj; - -if (iev==0) { - -ical=0; // counter set to zero if first-time reading - -//----------------------------------------------------------- -// Here I read the dEdx_korr parameters -//----------------------------------------------------------- - -jj=0; - -ifstream fin("adcmonitor.7th.100k.cut.dat"); - -while (! fin.eof()) { -fin>>t1>>tm>>t2; -//cout<>j>>xmean1>>xwidth1; -dedx_corr_m[jj][ii]=xmean1; - } -jj=jj+1; -} + tofdedx->Clear(); -fin.close(); + }; + // -while (tabs > mtime[ical]) { -ical = ical+1; - } -ical = ical-1; -cout<<"abs time "<mtime[ical+1]) { -cout<<"Checking Time Limits!"< mtime[ical]) { -ical = ical+1; - } -ical = ical-1; -cout<<"abs time "<GetOrbitalInfo()->absTime; + + if ( !(iev%100000) ) printf(" ATIME %u re %u \n",(Int_t)tabs,(UInt_t)iev); + + //================================================================== + Float_t dedx_corr_m[2000][48];//,dedx_corr[48]; + Double_t mtime[2000],t1,t2,tm; + // Float_t yhelp1,yhelp2,slope,inter,thelp1,thelp2; + Float_t yhelp1,yhelp2; + Float_t xmean1,xwidth1; + + Int_t ical=0; + Int_t ii,j,jj; + + if (iev==0) { + + ical=0; // counter set to zero if first-time reading + + //----------------------------------------------------------- + // Here I read the dEdx_korr parameters + //----------------------------------------------------------- + + jj=0; + printf(" READING NEW CALIBRATION FILE: %s \n",CALIBF.Data()); + + ifstream fin(CALIBF.Data()); + //cout << "topolino" << endl; + while (! fin.eof()) { + fin>>t1>>tm>>t2; + //cout<>j>>xmean1>>xwidth1; + dedx_corr_m[jj][ii]=xmean1; + } + jj=jj+1; + // printf(" kk %i \n",jj); + } + // printf(" 1ical %i \n",ical); + //cout << "pippo" << endl; + fin.close(); + + + while (tabs mtime[ical+1]) { + // printf(" ical %i \n",ical); + ical = ical+1; + } + // ical = ical-1; + //cout<<"abs time "<mtime[ical+1]) { + cout<<"Checking Time Limits!"< mtime[ical+1] || tabsntrk() ; pm++){ ToFTrkVar *ttf = tofl2->GetToFTrkVar(pm); for ( Int_t nc=0; nc < ttf->npmttdc; nc++){ - if ( (ttf->tdcflag).At(nc) != 0 ) tdcf[(ttf->pmttdc).At(nc)] = 1; + if ( (ttf->tdcflag).At(nc) != 0 ) tdcf[(ttf->pmttdc).At(nc)] = 1; }; for ( Int_t nc=0; nc < ttf->npmtadc; nc++){ - if ( (ttf->adcflag).At(nc) != 0 ) adcf[(ttf->pmtadc).At(nc)] = 1; + if ( (ttf->adcflag).At(nc) != 0 ) adcf[(ttf->pmtadc).At(nc)] = 1; }; }; // @@ -300,27 +378,30 @@ ToFPMT *pmt = tofl2->GetToFPMT(pm); tofl2->GetPMTIndex(pmt->pmt_id, gg, hh); if ( adcf[pmt->pmt_id] == 0 ){ - tofinput_.adc[gg][hh] = (int)pmt->adc; - adc[hh][gg] = (int)pmt->adc; + tofinput_.adc[gg][hh] = (int)pmt->adc; + adc[hh][gg] = (int)pmt->adc; }; if ( tdcf[pmt->pmt_id] == 0 ){ - tofinput_.tdc[gg][hh] = (int)pmt->tdc; - tdc[hh][gg] = (int)pmt->tdc; + tofinput_.tdc[gg][hh] = (int)pmt->tdc; + tdc[hh][gg] = (int)pmt->tdc; }; tdcc[hh][gg] = (float)pmt->tdc_tw; // Int_t pppid = tof->GetPMTid(hh,gg); // printf(" pm %i pmt_id %i pppid %i hh %i gg %i tdcc %f tdc %f adc %f \n",pm,pmt->pmt_id,pppid,hh,gg,pmt->tdc_tw,pmt->tdc,pmt->adc); }; - - -// for (Int_t pm=0; pm <48 ; pm++){ -// tof->GetPMTIndex(pm, gg, hh); -// tofinput_.tdc[hh][gg] = (int)500.; -// tofinput_.adc[hh][gg] = (int)500.; -// tdc[hh][gg] = (int)500.; -// adc[hh][gg] = (int)500.; -// // printf(" hh %i gg %i tdc %f adc %f \n",hh,gg,pmt->tdc,pmt->adc); -// }; + for (Int_t hh=0; hh<12;hh++){ + for (Int_t kk=0; kk<4;kk++){ + tofdedx->Init(kk,hh,adc[kk][hh]); + }; + }; + // for (Int_t pm=0; pm <48 ; pm++){ + // tof->GetPMTIndex(pm, gg, hh); + // tofinput_.tdc[hh][gg] = (int)500.; + // tofinput_.adc[hh][gg] = (int)500.; + // tdc[hh][gg] = (int)500.; + // adc[hh][gg] = (int)500.; + // // printf(" hh %i gg %i tdc %f adc %f \n",hh,gg,pmt->tdc,pmt->adc); + // }; // for (Int_t hh=0; hh<5;hh++){ tofinput_.patterntrig[hh]=pam_event->GetTrigLevel2()->patterntrig[hh]; @@ -368,37 +449,133 @@ t_tof->beta[kk] = tofoutput_.betatof_a[kk]; } // - t_tof->npmtadc = 0; - for (Int_t hh=0; hh<12;hh++){ - for (Int_t kk=0; kk<4;kk++){ - if ( tofoutput_.adctof_c[hh][kk] < 1000 ){ - // t_tof->dedx.AddAt(tofoutput_.adctof_c[hh][kk],t_tof->npmtadc); // EMILIANO - pmt_id = tof->GetPMTid(kk,hh); - t_tof->dedx.AddAt((tofoutput_.adctof_c[hh][kk]*4./dedx_corr[pmt_id]),t_tof->npmtadc); // EMILIANO - t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); - t_tof->adcflag.AddAt(tofoutput_.adcflagtof[hh][kk],t_tof->npmtadc); // gf: Jan 09/07 - t_tof->npmtadc++; - }; - }; - }; - // memcpy(t_tof->xtofpos,tofoutput_.xtofpos,sizeof(t_tof->xtofpos)); memcpy(t_tof->ytofpos,tofoutput_.ytofpos,sizeof(t_tof->ytofpos)); memcpy(t_tof->xtr_tof,tofoutput_.xtr_tof,sizeof(t_tof->xtr_tof)); memcpy(t_tof->ytr_tof,tofoutput_.ytr_tof,sizeof(t_tof->ytr_tof)); - // - new(t[ntrkentry]) ToFTrkVar(*t_tof); - ntrkentry++; - t_tof->Clear(); - // - // - // - t_pmt->Clear(); - // + // { +// Float_t xtof_temp[6]={0.,t_tof->xtofpos[0],t_tof->xtofpos[1],0.,0.,t_tof->xtofpos[2]}; +// Float_t ytof_temp[6]={t_tof->ytofpos[0],0.,0.,t_tof->ytofpos[1],t_tof->ytofpos[2],0.}; +// tofdedx->Process(pam_event->GetOrbitalInfo()->absTime,t_tof->beta[12], (Float_t *)xtof_temp,(Float_t *)ytof_temp); +// } +// t_tof->npmtadc = 0; + + +// for (Int_t hh=0; hh<12;hh++){ +// for (Int_t kk=0; kk<4;kk++){ +// pmt_id = tof->GetPMTid(kk,hh); +// if ( tofdedx->GetdEdx_pmt(pmt_id)>-1. ){ +// t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*36./pow(dedx_corr[pmt_id],2)),t_tof->npmtadc); +// t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); +// t_tof->adcflag.AddAt(0,t_tof->npmtadc); // gf: Jan 09/07 +// t_tof->npmtadc++; +// }; +// }; +// }; + { + + Float_t xtof_temp[6]={100.,100.,100.,100.,100.,100.}; + Float_t ytof_temp[6]={100.,100.,100.,100.,100.,100.}; + + if(t_tof->xtofpos[0]<100. && t_tof->ytofpos[0]<100.){ + xtof_temp[1]=t_tof->xtofpos[0]; + ytof_temp[0]=t_tof->ytofpos[0]; + }else if(t_tof->xtofpos[0]>=100. && t_tof->ytofpos[0]<100.){ + ytof_temp[0]=t_tof->ytofpos[0]; + tof->GetPaddleGeometry(0,(Int_t)log2(tof->tof_j_flag[0]),xleft, xright, yleft, yright); + xtof_temp[1]=xleft+2.55; + }else if(t_tof->ytofpos[0]>=100. && t_tof->xtofpos[0]<100.){ + xtof_temp[1]=t_tof->xtofpos[0]; + tof->GetPaddleGeometry(1,(Int_t)log2(tof->tof_j_flag[1]),xleft, xright, yleft, yright); + ytof_temp[0]=yleft+2.75; + } + + if(t_tof->xtofpos[1]<100. && t_tof->ytofpos[1]<100.){ + xtof_temp[2]=t_tof->xtofpos[1]; + ytof_temp[3]=t_tof->ytofpos[1]; + }else if(t_tof->xtofpos[1]>=100. && t_tof->ytofpos[1]<100.){ + ytof_temp[3]=t_tof->ytofpos[1]; + tof->GetPaddleGeometry(3,(Int_t)log2(tof->tof_j_flag[3]),xleft, xright, yleft, yright); + xtof_temp[2]=xleft+4.5; + }else if(t_tof->ytofpos[1]>=100. && t_tof->xtofpos[1]<100.){ + xtof_temp[2]=t_tof->xtofpos[1]; + tof->GetPaddleGeometry(2,(Int_t)log2(tof->tof_j_flag[2]),xleft, xright, yleft, yright); + ytof_temp[3]=yleft+3.75; + } + + if(t_tof->xtofpos[2]<100. && t_tof->ytofpos[2]<100.){ + xtof_temp[5]=t_tof->xtofpos[2]; + ytof_temp[4]=t_tof->ytofpos[2]; + }else if(t_tof->xtofpos[2]>=100. && t_tof->ytofpos[2]<100.){ + ytof_temp[4]=t_tof->ytofpos[2]; + tof->GetPaddleGeometry(4,(Int_t)log2(tof->tof_j_flag[4]),xleft, xright, yleft, yright); + xtof_temp[5]=xleft+3; + }else if(t_tof->ytofpos[2]>=100. && t_tof->xtofpos[2]<100.){ + xtof_temp[5]=t_tof->xtofpos[2]; + tof->GetPaddleGeometry(5,(Int_t)log2(tof->tof_j_flag[5]),xleft, xright, yleft, yright); + ytof_temp[4]=yleft+2.5; + } +// Float_t xtof_temp[6]={0.,t_tof->xtofpos[0],t_tof->xtofpos[1],0.,0.,t_tof->xtofpos[2]}; +// Float_t ytof_temp[6]={t_tof->ytofpos[0],0.,0.,t_tof->ytofpos[1],t_tof->ytofpos[2],0.}; +// tofdedx->Process(atime,t_tof->beta[12], (Float_t *)xtof_temp,(Float_t *)ytof_temp); + tofdedx->Process(pam_event->GetOrbitalInfo()->absTime,t_tof->beta[12], (Float_t *)xtof_temp,(Float_t *)ytof_temp); + t_tof->npmtadc = 0; + for (Int_t hh=0; hh<12;hh++){ + for (Int_t kk=0; kk<4;kk++){ + pmt_id = tof->GetPMTid(kk,hh); + Int_t Iplane=-1; + Int_t Ipaddle=-1; + // Int_t IpaddleT=-1; + tof->GetPMTPaddle(pmt_id, Iplane, Ipaddle); + tof->GetPaddleGeometry(Iplane,Ipaddle,xleft,xright,yleft,yright); + if ( tofdedx->GetdEdx_pmt(pmt_id)>-1. &&((xtof_temp[Iplane]>=xleft&&xtof_temp[Iplane]<=xright) || (ytof_temp[Iplane]>=yleft&&ytof_temp[Iplane]<=yright)) ){ //attenzione:qui va inserito un controllo sulla traccia tof o sulle variabili di posizione !!!! + //t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*4./dedx_corr[pmt_id]),t_tof->npmtadc); + //t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*dedx_corr[pmt_id]/4.),t_tof->npmtadc);//annullo wolfrizzazione + t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)),t_tof->npmtadc);//annullo wolfrizzazione + t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); + t_tof->adcflag.AddAt(0,t_tof->npmtadc); // gf: Jan 09/07 + t_tof->npmtadc++; + }; + }; + }; + }; + + + + + + + + + + + // for (Int_t hh=0; hh<12;hh++){ + // for (Int_t kk=0; kk<4;kk++){ + // if ( tofoutput_.adctof_c[hh][kk] < 1000 ){ + // // t_tof->dedx.AddAt(tofoutput_.adctof_c[hh][kk],t_tof->npmtadc); // EMILIANO + // pmt_id = tof->GetPMTid(kk,hh); + // t_tof->dedx.AddAt((tofoutput_.adctof_c[hh][kk]*4./dedx_corr[pmt_id]),t_tof->npmtadc); // EMILIANO + // t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); + // t_tof->adcflag.AddAt(tofoutput_.adcflagtof[hh][kk],t_tof->npmtadc); // gf: Jan 09/07 + // t_tof->npmtadc++; + // }; + // }; + // }; + // + + // + new(t[ntrkentry]) ToFTrkVar(*t_tof); + ntrkentry++; + t_tof->Clear(); + // + // + // + t_pmt->Clear(); + // for (Int_t hh=0; hh<12;hh++){ for (Int_t kk=0; kk<4;kk++){ - // new WM -// if ( tofoutput_.tdc_c[hh][kk] < 4095 || adc[kk][hh] < 4095 || tdc[kk][hh] < 4095 ){ + // new WM + // if ( tofoutput_.tdc_c[hh][kk] < 4095 || adc[kk][hh] < 4095 || tdc[kk][hh] < 4095 ){ if ( tdcc[kk][hh] < 4095. || adc[kk][hh] < 4095 || tdc[kk][hh] < 4095 ){ // t_pmt->pmt_id = tof->GetPMTid(kk,hh); @@ -431,11 +608,15 @@ for (Int_t e = 0; e < 5 ; e++){ tofinput_.al_pp[e] = ptt->al[e]; }; + + // new input for 9th reduction: tracker dEdx + tofinput_.trkmip = ptt->GetDEDX(); + // // Get tracker related variables for this track // toftrk(); -// toftrk(thelp); + // toftrk(thelp); // // Copy values in the class from the structure (we need to use a temporary class to store variables). // @@ -454,24 +635,63 @@ t_tof->beta[kk] = tofoutput_.beta_a[kk]; }; // + memcpy(t_tof->xtofpos,tofoutput_.xtofpos,sizeof(t_tof->xtofpos)); + memcpy(t_tof->ytofpos,tofoutput_.ytofpos,sizeof(t_tof->ytofpos)); + memcpy(t_tof->xtr_tof,tofoutput_.xtr_tof,sizeof(t_tof->xtr_tof)); + memcpy(t_tof->ytr_tof,tofoutput_.ytr_tof,sizeof(t_tof->ytr_tof)); + // + tofdedx->Process(pam_event->GetOrbitalInfo()->absTime,t_tof->beta[12], (Float_t *)t_tof->xtr_tof,(Float_t *)t_tof->ytr_tof); t_tof->npmtadc = 0; + for (Int_t hh=0; hh<12;hh++){ for (Int_t kk=0; kk<4;kk++){ - if ( tofoutput_.adc_c[hh][kk] < 1000 ){ - // t_tof->dedx.AddAt(tofoutput_.adc_c[hh][kk],t_tof->npmtadc); // EMILIANO - pmt_id = tof->GetPMTid(kk,hh); - t_tof->dedx.AddAt((tofoutput_.adc_c[hh][kk]*4./dedx_corr[pmt_id]),t_tof->npmtadc); // EMILIANO + pmt_id = tof->GetPMTid(kk,hh); + Int_t Iplane=-1; + Int_t Ipaddle=-1; + Int_t IpaddleT=-1; + tof->GetPMTPaddle(pmt_id, Iplane, Ipaddle); + IpaddleT=tof->GetPaddleIdOfTrack(t_tof->xtr_tof[Iplane],t_tof->ytr_tof[Iplane], Iplane,0.0); + if ( tofdedx->GetdEdx_pmt(pmt_id) > -1. && Ipaddle==IpaddleT ){ + //t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*4./dedx_corr[pmt_id]),t_tof->npmtadc); + //t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*dedx_corr[pmt_id]/4.),t_tof->npmtadc);//annullo wolfrizzazione + t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)),t_tof->npmtadc);//annullo wolfrizzazione t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); - t_tof->adcflag.AddAt(tofoutput_.adcflag[hh][kk],t_tof->npmtadc); // gf: Jan 09/07 + t_tof->adcflag.AddAt(0,t_tof->npmtadc); // gf: Jan 09/07 t_tof->npmtadc++; }; + }; }; + + +// for (Int_t hh=0; hh<12;hh++){ +// for (Int_t kk=0; kk<4;kk++){ +// pmt_id = tof->GetPMTid(kk,hh); +// if ( tofdedx->GetdEdx_pmt(pmt_id) > -1. ){ +// t_tof->dedx.AddAt((tofdedx->GetdEdx_pmt(pmt_id)*36./pow(dedx_corr[pmt_id],2)),t_tof->npmtadc); +// t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); +// t_tof->adcflag.AddAt(0,t_tof->npmtadc); // gf: Jan 09/07 +// printf(" nt %i npmtadc %i dedx %f dedx corr %f\n",nt,t_tof->npmtadc,(tofdedx->GetdEdx_pmt(pmt_id)*36./pow(dedx_corr[pmt_id],2)),dedx_corr[pmt_id]); +// t_tof->npmtadc++; +// }; + +// }; +// }; +// t_tof->npmtadc = 0; +// for (Int_t hh=0; hh<12;hh++){ +// for (Int_t kk=0; kk<4;kk++){ +// if ( tofoutput_.adc_c[hh][kk] < 1000 ){ +// // t_tof->dedx.AddAt(tofoutput_.adc_c[hh][kk],t_tof->npmtadc); // EMILIANO +// pmt_id = tof->GetPMTid(kk,hh); +// t_tof->dedx.AddAt((tofoutput_.adc_c[hh][kk]*4./dedx_corr[pmt_id]),t_tof->npmtadc); // EMILIANO +// t_tof->pmtadc.AddAt(pmt_id,t_tof->npmtadc); +// t_tof->adcflag.AddAt(tofoutput_.adcflag[hh][kk],t_tof->npmtadc); // gf: Jan 09/07 +// t_tof->npmtadc++; +// }; +// }; +// }; // - memcpy(t_tof->xtofpos,tofoutput_.xtofpos,sizeof(t_tof->xtofpos)); - memcpy(t_tof->ytofpos,tofoutput_.ytofpos,sizeof(t_tof->ytofpos)); - memcpy(t_tof->xtr_tof,tofoutput_.xtr_tof,sizeof(t_tof->xtr_tof)); - memcpy(t_tof->ytr_tof,tofoutput_.ytr_tof,sizeof(t_tof->ytr_tof)); + // // Store the tracker track number in order to be sure to have shyncronized data during analysis // @@ -526,87 +746,96 @@ void usage(){ - cout << "------------------------------------------------------------"< create an output file with histograms \n"; - cout << " fillTree --> create an output file with trees storing the selected events \n "; - cout << " +(-)ALL --> inlcude(exclude) all trees and branches \n " ; - cout << " +(-)TRK1 +(-)TRK2 +(-)CAL1 +(-)CAL2 +(-)TOF +(-)TRG +(-)ND +(-)S4 +(-)ORB --> inlcude(exclude) trees and branches \n" ; - cout << "------------------------------------------------------------"< create an output file with histograms \n"; + cout << " fillTree --> create an output file with trees storing the selected events \n "; + cout << " +(-)ALL --> inlcude(exclude) all trees and branches \n " ; + cout << " +(-)TRK1 +(-)TRK2 +(-)CAL1 +(-)CAL2 +(-)TOF +(-)TRG +(-)ND +(-)S4 +(-)ORB --> inlcude(exclude) trees and branches \n" ; + cout << "------------------------------------------------------------"<1){ + if(argc>1){ - if(!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help") ){ - usage(); - return(1); - }; -// ----------------------- -// Read input parameters -// ----------------------- - DIR = gSystem->WorkingDirectory(); - LIST = ""; - OUTF = "myfile"; - OPTIONS = "+AUTO -TOF"; + if(!strcmp(argv[1], "-h") || !strcmp(argv[1], "--help") ){ + usage(); + return(1); + }; + // ----------------------- + // Read input parameters + // ----------------------- + DIR = gSystem->WorkingDirectory(); + LIST = ""; + OUTF = "myfile"; + OPTIONS = "+AUTO -TOF"; - for (int i = 1; i < argc; i++){ - // -----------------------------------------------------// - if (!strcmp(argv[i], "-processDir")){ - if (++i >= argc) throw -1; - DIR = argv[i]; - cout << "processDir "<= argc) throw -1; - LIST = argv[i]; - cout << "processList "<= argc) throw -1; - OUTF = argv[i]; - cout << "outputFile "<= argc) throw -1; - OPTIONS = argv[i]; - if( OPTIONS.Contains("[") ){ - do{ - if (++i >= argc) throw -1; - OPTIONS.Append(argv[i]); - }while(!OPTIONS.Contains("]")); - }else cout << "wrong option format --> ignoring " << endl; - } - else{ - cout << "Unidentified input parameter. Ignored."<< endl; - }; - }; - }else{ - usage(); - return(1); + for (int i = 1; i < argc; i++){ + // -----------------------------------------------------// + if (!strcmp(argv[i], "-processDir")){ + if (++i >= argc) throw -1; + DIR = argv[i]; + cout << "processDir "<= argc) throw -1; + LIST = argv[i]; + cout << "processList "<= argc) throw -1; + OUTF = argv[i]; + cout << "outputFile "<= argc) throw -1; + CALIBF = gSystem->ExpandPathName(argv[i]); + cout << "calibFile "<= argc) throw -1; + OPTIONS = argv[i]; + if( OPTIONS.Contains("[") ){ + do{ + if (++i >= argc) throw -1; + OPTIONS.Append(argv[i]); + }while(!OPTIONS.Contains("]")); + }else cout << "wrong option format --> ignoring " << endl; + } + else{ + cout << "Unidentified input parameter. Ignored."<< endl; + }; }; -// ----------------------- -// Check input parameters -// ----------------------- + }else{ + usage(); + return(1); + }; + // ----------------------- + // Check input parameters + // ----------------------- - return(0); + return(0); }; // @@ -614,14 +843,14 @@ int main(int argc, char **argv) { - if( HandleInputPar(argc,argv) )return(1); + if( HandleInputPar(argc,argv) )return(1); - cout << "OPTIONS "<