#include "hparticlebeamtilt.h" // ROOT's IO and RTTI stuff is added here ClassImp(HParticleBeamTilt) //_HADES_CLASS_DESCRIPTION //////////////////////////////////////////////////////////////////////////////// // // Author : Vladimir Pechenov // // HParticleBeamTilt // // This class keeps the beam tilt and beam energy information for Feb22 beamtime // and has the functionality to correct the measured theta and phi angles by the beam tilt. // // To select the elastic pp events, it is important to know the beam energy and // the beam direction (beam tilt). // Beam energy for protons (not for the nucleus) can be higher than nominal (up to 1%). // The tilt of the beam depends on the focusing procedure and may be different after each focusing. // // During Feb22 beamtime, the focusing of the beam was performed several times. // As a result, six time ranges were determined and tilt parameters were calculated for them. // Beam energy has been defined for two energies. // They are 4.535 (instead of 4.5) GeV and 1.602 (instead of 1.58) GeV. // // How to use: // // #include "hparticlebeamtilt.h" // ... // // Before event loop: // HEventHeader *evHeader = loop->getEventHeader(); // HParticleBeamTilt beamTilt; // beamTilt.setEventHeader(evHeader); // // From event header code take runId and select beam parameters for this event. // ... // // For each particle: // Double_t thDeg,phiDeg; // angles after correction by the beam tilt // beamTilt.correctAngles(cand->getTheta(),cand->getPhi(),thDeg,phiDeg); // "cand" is HParticleCand // // ---------------------------------------------------------------------------- // // Beam properties: // const TLorentzVector* beam = beamTilt.beamLVector(); // return a beam four-momentum vector along // // the axis of the beam tilt (in lab.system) // if( beam != NULL) ... // beamTilt.beamMom(); // beam momentum // beamTilt.gamma2(); // (Ek+2*mp)/(2*mp); // beamTilt.beamEk(); // beam kinetic energy // ////////////////////////////////////////////////////////////////////////////////