// Example for SAMURAI HOD void HODHist(){ // set raw data file TArtEventStore *eventstore = new TArtEventStore; const char* filename = "ridf/sdaq02/dayone0080.ridf";//22C+C run if(!eventstore->Open(filename)){ std::cout << "cannot open " << filename << std::endl; return; } // calibration parameters TArtSAMURAIParameters *smprm = TArtSAMURAIParameters::Instance(); smprm->LoadParameter("db/SAMURAIHOD.xml"); // TArtStoreManager is a class for accessing calibrated data TArtStoreManager *sman = TArtStoreManager::Instance(); // TArtCalibHODPla is a class for calibartion of SAMURAI Hodoscope TArtCalibHODPla *calibhod = new TArtCalibHODPla; // define histograms TH1* hid = new TH1I("hid", "HOD ID", 16, 0.5, 16.5); TH1* hqu = new TH2D("hqu", "HOD ID-QURaw", 16,0.5,16.5, 4100, 0, 4100); TH1* hqd = new TH2D("hqd", "HOD ID-QDRaw", 16,0.5,16.5, 4100, 0, 4100); TH1* htu = new TH2D("htu", "HOD ID-TURaw", 16,0.5,16.5, 4100, 0, 4100); TH1* htd = new TH2D("htd", "HOD ID-TDRaw", 16,0.5,16.5, 4100, 0, 4100); TH1* hqave = new TH2D("hqave", "HOD ID-Qave", 16,0.5,16.5, 200, 0, 1000); TH1* htime = new TH2D("htime", "HOD ID-Time", 16,0.5,16.5, 200, 0, 200); // event loop int nevent = 0; while(eventstore->GetNextEvent() && nevent<10000){ calibhod->ReconstructData(); // Get calibrated data TClonesArray *pla_array = (TClonesArray*)sman->FindDataContainer("SAMURAIHODPla"); // another way //TClonesArray *pla_array = (TClonesArray*)calibhod->GetHODPlaArray(); Int_t NumHODPla = pla_array->GetEntries(); for(Int_t j=0; jAt(j); hid->Fill( pla->GetID() ); hqu->Fill( pla->GetID(), pla->GetQURaw() ); hqd->Fill( pla->GetID(), pla->GetQDRaw() ); htu->Fill( pla->GetID(), pla->GetTURaw() ); htd->Fill( pla->GetID(), pla->GetTDRaw() ); hqave->Fill( pla->GetID(), pla->GetQAveCal() ); htime->Fill( pla->GetID(), pla->GetTime() ); } // clear calibhod->ClearData(); eventstore->ClearData(); ++nevent; } return; }