#include "IDatum.hxx" #include "IRealDatum.hxx" #include "TPrincipal.h" #include "IECALTestbeamModule.hxx" ClassImp(COMET::IECALTestbeamModule); #define CVSTAG "\ $Name: v5r19 $" #define CVSID "\ $Id: IECALTestbeamModule.cxx,v 1.3 2010/05/24 08:07:58 lwhitehead Exp $" COMET::IECALTestbeamModule::IECALTestbeamModule(const char *name, const char *title) { SetNameTitle(name, title); // Enable this module by default: fIsEnabled = kTRUE; fDescription = "ECALTestbeam recon output"; fCVSTagName = CVSTAG; fCVSID = CVSID; } COMET::IECALTestbeamModule::~IECALTestbeamModule() {} Bool_t COMET::IECALTestbeamModule::ProcessFirstEvent(COMET::ICOMETEvent& event) { return true; } void COMET::IECALTestbeamModule::InitializeModule() { } void COMET::IECALTestbeamModule::InitializeBranches() { fOutputTree->Branch("Cerenkov1Lo", &Cerenkov1Lo,"Cerenkov1Lo[23]/I"); fOutputTree->Branch("Cerenkov1Hi", &Cerenkov1Hi,"Cerenkov1Hi[23]/I"); fOutputTree->Branch("Cerenkov2Lo", &Cerenkov2Lo,"Cerenkov2Lo[23]/I"); fOutputTree->Branch("Cerenkov2Hi", &Cerenkov2Hi,"Cerenkov2Hi[23]/I"); fOutputTree->Branch("TOF", &TOF,"TOF[23]/I"); fOutputTree->Branch("TriggerWord", &TriggerWord, "TriggerWord/I"); fOutputTree->Branch("TestBeamPID", &PIDResult, "PIDResult/I"); fOutputTree->Branch("TestBeamMomentum" , &Momentum, "Momentum/D"); fOutputTree->Branch("TestBeamAngle" , &Angle, "Angle/I"); } bool COMET::IECALTestbeamModule::FillTree(COMET::ICOMETEvent& event) { COMET::IHandle Ch1Lo = event.Get("Cerenkov1Lo"); COMET::IHandle Ch2Lo = event.Get("Cerenkov2Lo"); COMET::IHandle Ch1Hi = event.Get("Cerenkov1Hi"); COMET::IHandle Ch2Hi = event.Get("Cerenkov2Hi"); COMET::IHandle TOFLo = event.Get("TOFHighGain"); COMET::IHandle TOFHi = event.Get("TOFLowGain"); COMET::IHandle TWord = event.Get("TriggerWord"); for(int i = 0; i < 23; ++i) { Cerenkov1Lo[i] = (Ch1Lo->GetVector())[i]; Cerenkov1Hi[i] = (Ch2Lo->GetVector())[i]; Cerenkov2Lo[i] = (Ch1Hi->GetVector())[i]; Cerenkov2Hi[i] = (Ch2Hi->GetVector())[i]; TOF[i] = (TOFLo->GetVector())[i]; } TriggerWord = TWord->GetValue(); COMET::IHandle pidResultDatum = event.Get("testBeamPID"); COMET::IHandle angleDatum = event.Get("testBeamAngle"); COMET::IHandle momentumDatum = event.Get("testBeamMomentum"); PIDResult = pidResultDatum->GetValue(); Momentum = momentumDatum->GetValue(); Angle = angleDatum->GetValue(); return true; }