#include #include void UnpackIdE11_fr(){ cout << "important: uncomment the only branches you want to write around line 23 of TRootEvent/TRootEvent.cxx!"<Load("libMbs"); gSystem->Load("libMbsAPI"); gSystem->Load("libTCHIEvent"); gSystem->Load("libTRootEvent"); gSystem->Load("libTCHIGridCsI"); string dir = getenv("VMCWORKDIR"); string caldir = dir + "/CALFILES/CHIMERA/"; string chipar = caldir + "gsieos.par"; string chiped = caldir + "asyeos.ped"; string chioffset = caldir + "r1428_v16112011.offset"; string chiecalib = caldir + "ecalib141111.txt"; string chiecalibrec = caldir + "dee.txt"; string chigrid = caldir + "grid_16032012.dat"; TRootDefine chitree; TRootCHIEvent *evt = 0; chitree.Open("Id_run1670-1686_fr.root"); chitree.GetTree()->SetTitle("AsyEos beam"); evt = chitree.GetCHIEvt(); int MBSTSh,MBSTSm,MBSTSs; int CHITSh,CHITSm,CHITSs; unsigned long int CHIMERA_TimeStamp, MBS_TimeStamp; int Trig_Patt; int bit_Trig_Patt[16]; vector pchim; Int_t time, de, fastpg, fastgg, slowpg, slowgg, timecsi; Float_t x,y; int idcode; TCHIEvent* chimera_evt = 0; chimera_evt = new TCHIEvent(chipar,2); chimera_evt->ProcessParFile(); chimera_evt->Get_Pedestal_Data(chiped.c_str()); chimera_evt->Get_Offset_Data(chioffset.c_str()); TCHIResult idr; //define results object TCHICsIGSIEnergy calib(chiecalib,chiecalibrec,caldir); //define calibration object calib.Init(); //init calibration TCHIGridCsI csigrid(chigrid); csigrid.ReadAsciiFile(); csigrid.Initialize(); int Nruns; TString InFile ; ifstream inputfile; inputfile.open("runlist1670-1686.dat"); inputfile >> Nruns; MbsFile* myMbs=0; Int_t *status=new Int_t; Int_t* sebuflenght=new Int_t; Short_t* setype=new Short_t; Short_t* sesubtype=new Short_t; Char_t* sesubcrate=new Char_t; Int_t* SubEventDataPtr=new Int_t; for(int irun=0;irun>InFile; myMbs= new MbsFile(InFile,status); cout << "$$$$$$$$$$$$$$$$$$$$$$$$$$$$" << endl; cout <PrintFileHeader(); Int_t lastevent=0; Int_t i=0; Int_t chievt=0; Int_t mbsevt=0; while(!lastevent){ if(i%5000==0)cout << "############################# i="<< i << endl; lastevent=myMbs->GetEvent(); Int_t nrSubEvts=myMbs->GetNrSubEvent(); for(Int_t j=1;j<=nrSubEvts;j++){ SubEventDataPtr=myMbs->GetSubEvent(j,sebuflenght,setype,sesubtype,sesubcrate); if((*setype==10) && (*sesubtype==1) && (*SubEventDataPtr==256)){ Int_t ftotfired=chimera_evt->ProcessCurrentEventMBS(SubEventDataPtr); chimera_evt->GetTiMeStamp(&CHITSs,&CHITSm,&CHITSh); chievt++; multTOF = chimera_evt->GetTofMultiplicity(); chimera_evt->GetFired(pchim); int ntel = pchim.size(); int num = 0; int none; float tsumcsi=0; evt->tavecsi=-100; int ntcsi=0; for(int k=0; kGet_Data_Telescope(numtel, TOFSi,SI, LG,LG, &time, &de); chimera_evt->Get_Data_Telescope(numtel, SLOW, FAST,LG,LG, &slowpg, &fastpg); chimera_evt->Get_Data_Telescope(numtel, SLOW, FAST,HG,HG, &slowgg, &fastgg); chimera_evt->Get_Data_Telescope(numtel, TOF30,NONE,LG,LG, &timecsi,&none); if(numtel>=144 && numtel<=495) { csigrid.Identify(numtel, slowpg, fastpg, &idr); idcode=idr.Getcod(); if(idcode<10){ evt->IdA[num] = idr.GetA(); evt->Idcode[num] = idr.Getcod(); evt->IdPID[num] = idr.GetPID(); if(idr.GetZ()>10)cout << numtel <<" prima di ecalib"<Idcode[num] = idr.Getcod(); evt->IdE[num]= calib.GetDE(); evt->IdA[num] = idr.GetA(); evt->IdZ[num] = idr.GetZ(); if(idr.GetZ()>10){ cout << numtel <<" dopo di ecalib"<Idnumtel[num]= numtel; evt->Idstopped[num]=idr.GetIfStopped(); evt->fastpg[num]= fastpg; evt->slowpg[num]= slowpg; num++; } } evt->Idmulti = num; if(timecsi && numtel >= 144 && numtel <= 495){ if(numtel==144)timecsi=0; if(numtel==154)timecsi=0; if(numtel==164)timecsi=0; if(numtel==174)timecsi=0; if(numtel==184)timecsi=0; if(numtel==194)timecsi=0; if(numtel==204)timecsi=0; if(numtel==214)timecsi=0; if(numtel==224)timecsi=0; if(numtel==234)timecsi=0; if(numtel==244)timecsi=0; if(numtel==254)timecsi=0; if(numtel==264)timecsi=0; if(numtel==274)timecsi=0; if(numtel==284)timecsi=0; if(numtel==294)timecsi=0; if(numtel==412)timecsi=0; if(numtel==460)timecsi=0; tsumcsi=tsumcsi+timecsi; if(timecsi!=0)ntcsi++; } } if (ntcsi)evt->tavecsi= tsumcsi/ntcsi; chitree.GetTree()->Fill(); chimera_evt->Clear_fired_param(0); } } i++; } myMbs->CloseFile(); } } chitree.Close(); inputfile.close(); cout << "here we are"<