[Clas12_verystrange] My photon definition

Michael Dugger dugger at jlab.org
Thu May 17 09:27:53 EDT 2018


Hi,

During the meeting yesterday, I was asked for information regarding how I 
define my photons.

Sorry not to get this out yesterday but that was kind of a crazy day for 
me.

Here is how I define my photons:

//First I grab values from REC_Particle:

for (int j=0;j<nREC;j++){
   mPart_t mPartTmp;
   int pidTmp   = mcTree.REC_Particle_pid->at(j);
   double pxTmp = mcTree.REC_Particle_px->at(j);
   double pyTmp = mcTree.REC_Particle_py->at(j);
   double pzTmp = mcTree.REC_Particle_pz->at(j);
   double pTmp  = sqrt(pow(pxTmp,2)+pow(pyTmp,2)+pow(pzTmp,2));
   double eTmp  = 0.0;
   int charge   = mcTree.REC_Particle_charge->at(j);

//Then I simply take all charge = 0 particles and call those photons
//and reset the energy and make a 100 MeV cut:

if (charge == 0){
     double moVal = mPartTmp.momentum.P();
     mPartTmp.momentum.SetE(moVal);
     if (moVal > 0.1) mPartPho.push_back(mPartTmp);
}

//For the case of 2 photons I make an additional cut (for now):

int nPho = mPartPho.size();

//Define pho2Cut. If pho2Cut = true then these are not used

bool pho2Cut = true;

//Define the four vector of the 2 photon system and get the
//opening angle between them

if (nPho == 2) {
  TLorentzVector mo2Pho = mPartPho[0].momentum + mPartPho[1].momentum;

  TVector3
vec1(mPartPho[0].momentum.Px(),mPartPho[0].momentum.Py(),mPartPho[0].momentum.Pz());

  TVector3
vec2(mPartPho[1].momentum.Px(),mPartPho[1].momentum.Py(),mPartPho[1].momentum.Pz());

  double angleVal = vec1.Angle(vec2)*180.0/3.14159;

//Then define the line for the cut

  double xa1 = 1.0, xa2 = 61.0, ya1 = 0.0, ya2 = 1.0;
  double deltaAX = xa2 - xa1;
  double deltaAY = ya2 - ya1;
  double mValA = deltaAY/deltaAX;
  double bValA = ya1 - mValA*xa1;

//Make the cut
  double yValA = mValA*angleVal + bValA;
  if (mo2Pho.Mag() < yValA) pho2Cut = false;


Take care,
Michael


More information about the Clas12_verystrange mailing list