/////////////////////////////////////////////////////////////////////////////// // P.Murat: STNTUPLE adapter class for CT_Refit /////////////////////////////////////////////////////////////////////////////// #include "AbsEnv/AbsEnv.hh" #include "Stntuple/mod/StntupleCotReFit.hh" #include "CotGeometry/CT_Calibration.hh" #include "Alignment/CotBeam.hh" #include "VertexObjects/Beamline.hh" #include "TrackingCT/CT_ReFit.hh" #include "Stntuple/mod/StntupleBeamManager.hh" ClassImp(StntupleCotReFit) //_____________________________________________________________________________ StntupleCotReFit::StntupleCotReFit(const char* Name): TNamed(Name,Name) { fReFit = new CT_ReFit(); fLastRun = -1; fCotBeam = 0; } //_____________________________________________________________________________ int StntupleCotReFit::BeginRun() { // initialize COT beam position to do beam-constrained refit of the track // parameters. static Beamline beam; int run = AbsEnv::instance()->runNumber(); int mc_flag = AbsEnv::instance()->monteFlag(); StntupleBeamManager* beam_man = StntupleBeamManager::Instance(); //----------------------------------------------------------------------------- // beam manager has to be initialized by one of the modules // Question to be answered: what if 2 different modules want to initialize // the beam position differently? // Answer: StntupleBeamManager is a singleton, so the first module wins // (this policy forces all the modules to use the same beam, in case 2 modules // succeded in using different beam positions, we are in trouble anyway) //----------------------------------------------------------------------------- fCotBeam = beam_man->GetCotBeam(); beam = fCotBeam->getBeamline(); fReFit->initBeamPos(beam); fLastRun = run; return 0; } //_____________________________________________________________________________ StntupleCotReFit::~StntupleCotReFit() { // delete fReFit; } //_____________________________________________________________________________ void StntupleCotReFit::Clear(const char* Opt) { } //_____________________________________________________________________________ void StntupleCotReFit::Print(const char* Opt) const { printf(" StntupleCotReFit::Print not implemented yet\n"); }