ROOT logo
//#include "UserTreeAnalysis.H"   // remove if copied to user working directory
#include <stdio.h>
#include <assert.h>
#include <math.h>
#include <vector>
#include <iostream>
#include "MC4Vector.H"
#include "HEPParticle.H"
#include "TH1.h"
#include "Setup.H"
#include "TObjArray.h"
#include "TMath.h"

using namespace std;
// Limits for particular user histograms
int L[6] = { 5000000,5000000,2000000,2000000,1000000,1000000 };

// very similar to  MC_FillUserHistogram from Generate.cxx
inline void fillUserHisto(char *name,double val, double weight=1.0, 
                          double min=Setup::bin_min[0][0], 
                          double max=Setup::bin_max[0][0])
{
	TH1D *h=(TH1D*)(Setup::user_histograms->FindObject(name));
	if(!h){
		h=new TH1D(name,name,Setup::nbins[0][0],min,max);
		if(!h) return;
		Setup::user_histograms->Add(h);
		//      printf("user histogram created %s\n", name);
	}
	h->Fill(val,weight);
}

double normalised_cross_product(double * v1, double * v2, double * result)
{
	result[0] = v1[1]*v2[2] - v1[2]*v2[1];
	result[1] = v1[2]*v2[0] - v1[0]*v2[2];
	result[2] = v1[0]*v2[1] - v1[1]*v2[0];

	double normalisation = sqrt(result[0]*result[0]
	                      +result[1]*result[1]
	                      +result[2]*result[2]);

	for(int i=0;i<3;i++)
		result[i]=result[i]/normalisation;

	return normalisation;
}

double dot_product(double *v1, double *v2)
{
	return v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2];
}

double dot_product(MC4Vector v1, MC4Vector v2)
{
	return v1.GetX1()*v2.GetX1()+v1.GetX2()*v2.GetX2()+v1.GetX3()*v2.GetX3();
}

double magnitude(double *v)
{
	return sqrt(dot_product(v,v));
}


//see RhoRhoUserTreeAnalysis in TAUOLA
/** Main function. This does not take any parameters. It assumes
	the events are something -> tau+ tau-, then tau -> pi+/- pi0 nu */
int RhoRhoPHOTOSUserTreeAnalysis(HEPParticle *mother,HEPParticleList *stableDaughters, int nparams, double *params)
{
	assert(mother!=0);
	assert(stableDaughters!=0);

	HEPParticleListIterator daughters(*stableDaughters);

	//make temporary 4 vectors for the pions
	double pi_plus[4]={0};
	double pi_minus[4]={0};
	double pi0_plus[4]={0};
	double pi0_minus[4]={0};

	MC4Vector d_pi0_plus;
	MC4Vector d_pi0_minus;
	MC4Vector d_pi_plus;
	MC4Vector d_pi_minus;
	MC4Vector d_gamma;
	MC4Vector temp;

	//make temporary variables to store the center of mass of
	//the rho+ rho- pair.
	double cm_px=0;
	double cm_py=0;
	double cm_pz=0;
	double cm_e=0;

	double photon_e = 0;

	//loop over all daughters and sort them by type, filling the
	//temporary variables.
	for (HEPParticle *part=daughters.first(); part!=0; part=daughters.next())
	{
		temp = part->GetP4();
		if(part->GetPDGId()!=16&&part->GetPDGId()!=-16)
		{
			//Get the center of mass
			cm_px+=part->GetPx();
			cm_py+=part->GetPy();
			cm_pz+=part->GetPz();
			cm_e+=part->GetE();
		}

		//Initialize the particle arrays
		switch(part->GetPDGId())
		{
		case 211:
			d_pi_plus.Set(&temp);
			d_pi_plus.SetM(part->GetM());   
			break;
		case -211:
			d_pi_minus.Set(&temp);
			d_pi_minus.SetM(part->GetM());
			break;
		case 111: //fill the pi0's randomly for the moment.
			if(d_pi0_minus.GetX1()==0&&d_pi0_minus.GetX2()==0&&d_pi0_minus.GetX3()==0)
			{
				d_pi0_minus.Set(&temp);
				d_pi0_minus.SetM(part->GetM());
			}
			else
			{
				d_pi0_plus.Set(&temp);
				d_pi0_plus.SetM(part->GetM());
			}	
			break;
		case 22:
			d_gamma.Set(&temp);
			d_gamma.SetM(0);
			// Only the hardest photon counts
			if(photon_e>d_gamma.GetX0()) return 0;
			photon_e=d_gamma.GetX0();
			// Skip photons with energy < 10MeV
			if(photon_e<0.01) photon_e=0;
			break;	
		default:
			break;
		}
	}

	//Now check which pi0 is associated with
	//which pi+/-. Use the angle to decide.
	double costheta1 = dot_product(d_pi_plus,d_pi0_plus)/(d_pi_plus.Length()*d_pi0_plus.Length());
	double costheta2 = dot_product(d_pi_minus,d_pi0_plus)/(d_pi_minus.Length()*d_pi0_plus.Length());


	if(costheta1<costheta2) //if necessary, change the pi0 vectors
	{
		MC4Vector temp;
		temp.Set(&d_pi0_plus);
		temp.SetM(d_pi0_plus.GetM());
		d_pi0_plus.Set(&d_pi0_minus);
		d_pi0_plus.SetM(d_pi0_minus.GetM());
		d_pi0_minus.Set(&temp);
		d_pi0_minus.SetM(temp.GetM());
	}

	//Now boost everything into the rho+ rho- center of mass frame.
	double cm_mass = sqrt(cm_e*cm_e-cm_px*cm_px-cm_py*cm_py-cm_pz*cm_pz);

	d_pi0_plus.Boost(cm_px,cm_py,cm_pz,cm_e,cm_mass);
	d_pi0_minus.Boost(cm_px,cm_py,cm_pz,cm_e,cm_mass);
	d_pi_plus.Boost(cm_px,cm_py,cm_pz,cm_e,cm_mass);
	d_pi_minus.Boost(cm_px,cm_py,cm_pz,cm_e,cm_mass);
	d_gamma.Boost(cm_px,cm_py,cm_pz,cm_e,cm_mass);

	pi0_plus[0]=d_pi0_plus.GetX1();
	pi0_plus[1]=d_pi0_plus.GetX2();
	pi0_plus[2]=d_pi0_plus.GetX3();
	pi0_plus[3]=d_pi0_plus.GetM();

	pi_plus[0]=d_pi_plus.GetX1();
	pi_plus[1]=d_pi_plus.GetX2();
	pi_plus[2]=d_pi_plus.GetX3();
	pi_plus[3]=d_pi_plus.GetM();

	pi0_minus[0]=d_pi0_minus.GetX1();
	pi0_minus[1]=d_pi0_minus.GetX2();
	pi0_minus[2]=d_pi0_minus.GetX3();
	pi0_minus[3]=d_pi0_minus.GetM();

	pi_minus[0]=d_pi_minus.GetX1();
	pi_minus[1]=d_pi_minus.GetX2();
	pi_minus[2]=d_pi_minus.GetX3();
	pi_minus[3]=d_pi_minus.GetM();

	/******* calculate acoplanarity (theta) *****/

	//normal to the plane spanned by pi+ pi0 
	double n_plus[3];
	normalised_cross_product(pi_plus,pi0_plus,n_plus);

	//normal to the plane spanned by pi- pi0
	double n_minus[3];
	normalised_cross_product(pi_minus,pi0_minus,n_minus);

	//get the angle
	double theta = acos(dot_product(n_plus,n_minus));

	//make theta go between 0 and 2 pi.
	double pi_minus_n_plus = dot_product(pi_minus,n_plus)/magnitude(pi_minus);    
	if(pi_minus_n_plus>0)
		theta=2*M_PI-theta;

	/*********** calculate C/D reco  (y1y2 in the paper) ***/

	//boost vectors back to the lab frame
	d_pi0_plus.Boost(-cm_px,-cm_py,-cm_pz,cm_e,cm_mass);
	d_pi_plus.Boost(-cm_px,-cm_py,-cm_pz,cm_e,cm_mass);
	d_pi0_minus.Boost(-cm_px,-cm_py,-cm_pz,cm_e,cm_mass);
	d_pi_minus.Boost(-cm_px,-cm_py,-cm_pz,cm_e,cm_mass);

	//construct effective tau 4 vectors (without neutrino)
	double e_tau = 120.0/2.0;
	double m_tau = 1.78;
	double p_mag_tau = sqrt(e_tau*e_tau - m_tau*m_tau);

	MC4Vector p_tau_plus = d_pi_plus + d_pi0_plus;
	MC4Vector p_tau_minus = d_pi_minus + d_pi0_minus;

	double norm_plus = p_mag_tau/p_tau_plus.Length();
	double norm_minus = p_mag_tau/p_tau_minus.Length();

	p_tau_plus.SetX0(e_tau);
	p_tau_plus.SetX1(norm_plus*p_tau_plus.GetX1());
	p_tau_plus.SetX2(norm_plus*p_tau_plus.GetX2());
	p_tau_plus.SetX3(norm_plus*p_tau_plus.GetX3());
	p_tau_plus.SetM(m_tau);

	p_tau_minus.SetX0(e_tau);
	p_tau_minus.SetX1(norm_minus*p_tau_minus.GetX1());
	p_tau_minus.SetX2(norm_minus*p_tau_minus.GetX2());
	p_tau_minus.SetX3(norm_minus*p_tau_minus.GetX3());
	p_tau_minus.SetM(m_tau);

	//boost to the (reco) tau's frames
	d_pi0_plus.BoostP(p_tau_plus);
	d_pi_plus.BoostP(p_tau_plus);
	d_pi0_minus.BoostP(p_tau_minus);
	d_pi_minus.BoostP(p_tau_minus);

	//calculate y1 and y2
	double y1=(d_pi_plus.GetX0()-d_pi0_plus.GetX0())/(d_pi_plus.GetX0()+d_pi0_plus.GetX0());
	double y2=(d_pi_minus.GetX0()-d_pi0_minus.GetX0())/(d_pi_minus.GetX0()+d_pi0_minus.GetX0());
	
	//make seperate plots for different photon energy ranges
	if(photon_e==0)
	{
		if(y1*y2>0)
		{
			if(L[0]<=0) return 0;
			L[0]--;
			char name[] = "acoplanarity-angle-C-no-photon";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}
		else
		{
			if(L[1]<=0) return 0;
			L[1]--;
			char name[] = "acoplanarity-angle-D-no-photon";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}

	}
	if(photon_e>0&&photon_e<1.0)
	{
		if(y1*y2>0)
		{
			if(L[2]<=0) return 0;
			L[2]--;
			char name[] = "acoplanarity-angle-C-photon-up-to-1-GeV";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}
		else
		{
			if(L[3]<=0) return 0;
			L[3]--;
			char name[] = "acoplanarity-angle-D-photon-up-to-1-GeV";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}
	}
	if(photon_e>1.0)
	{
		if(y1*y2>0)
		{
			if(L[4]<=0) return 0;
			L[4]--;
			char name[] = "acoplanarity-angle-C-photon-over-1-GeV";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}
		else
		{
			if(L[5]<=0) return 0;
			L[5]--;
			char name[] = "acoplanarity-angle-D-photon-over-1-GeV";
			fillUserHisto(name,theta,1.0,0,2*M_PI);
		}
	}
	
	return 0;
};

 RhoRhoPHOTOSUserTreeAnalysis.C:1
 RhoRhoPHOTOSUserTreeAnalysis.C:2
 RhoRhoPHOTOSUserTreeAnalysis.C:3
 RhoRhoPHOTOSUserTreeAnalysis.C:4
 RhoRhoPHOTOSUserTreeAnalysis.C:5
 RhoRhoPHOTOSUserTreeAnalysis.C:6
 RhoRhoPHOTOSUserTreeAnalysis.C:7
 RhoRhoPHOTOSUserTreeAnalysis.C:8
 RhoRhoPHOTOSUserTreeAnalysis.C:9
 RhoRhoPHOTOSUserTreeAnalysis.C:10
 RhoRhoPHOTOSUserTreeAnalysis.C:11
 RhoRhoPHOTOSUserTreeAnalysis.C:12
 RhoRhoPHOTOSUserTreeAnalysis.C:13
 RhoRhoPHOTOSUserTreeAnalysis.C:14
 RhoRhoPHOTOSUserTreeAnalysis.C:15
 RhoRhoPHOTOSUserTreeAnalysis.C:16
 RhoRhoPHOTOSUserTreeAnalysis.C:17
 RhoRhoPHOTOSUserTreeAnalysis.C:18
 RhoRhoPHOTOSUserTreeAnalysis.C:19
 RhoRhoPHOTOSUserTreeAnalysis.C:20
 RhoRhoPHOTOSUserTreeAnalysis.C:21
 RhoRhoPHOTOSUserTreeAnalysis.C:22
 RhoRhoPHOTOSUserTreeAnalysis.C:23
 RhoRhoPHOTOSUserTreeAnalysis.C:24
 RhoRhoPHOTOSUserTreeAnalysis.C:25
 RhoRhoPHOTOSUserTreeAnalysis.C:26
 RhoRhoPHOTOSUserTreeAnalysis.C:27
 RhoRhoPHOTOSUserTreeAnalysis.C:28
 RhoRhoPHOTOSUserTreeAnalysis.C:29
 RhoRhoPHOTOSUserTreeAnalysis.C:30
 RhoRhoPHOTOSUserTreeAnalysis.C:31
 RhoRhoPHOTOSUserTreeAnalysis.C:32
 RhoRhoPHOTOSUserTreeAnalysis.C:33
 RhoRhoPHOTOSUserTreeAnalysis.C:34
 RhoRhoPHOTOSUserTreeAnalysis.C:35
 RhoRhoPHOTOSUserTreeAnalysis.C:36
 RhoRhoPHOTOSUserTreeAnalysis.C:37
 RhoRhoPHOTOSUserTreeAnalysis.C:38
 RhoRhoPHOTOSUserTreeAnalysis.C:39
 RhoRhoPHOTOSUserTreeAnalysis.C:40
 RhoRhoPHOTOSUserTreeAnalysis.C:41
 RhoRhoPHOTOSUserTreeAnalysis.C:42
 RhoRhoPHOTOSUserTreeAnalysis.C:43
 RhoRhoPHOTOSUserTreeAnalysis.C:44
 RhoRhoPHOTOSUserTreeAnalysis.C:45
 RhoRhoPHOTOSUserTreeAnalysis.C:46
 RhoRhoPHOTOSUserTreeAnalysis.C:47
 RhoRhoPHOTOSUserTreeAnalysis.C:48
 RhoRhoPHOTOSUserTreeAnalysis.C:49
 RhoRhoPHOTOSUserTreeAnalysis.C:50
 RhoRhoPHOTOSUserTreeAnalysis.C:51
 RhoRhoPHOTOSUserTreeAnalysis.C:52
 RhoRhoPHOTOSUserTreeAnalysis.C:53
 RhoRhoPHOTOSUserTreeAnalysis.C:54
 RhoRhoPHOTOSUserTreeAnalysis.C:55
 RhoRhoPHOTOSUserTreeAnalysis.C:56
 RhoRhoPHOTOSUserTreeAnalysis.C:57
 RhoRhoPHOTOSUserTreeAnalysis.C:58
 RhoRhoPHOTOSUserTreeAnalysis.C:59
 RhoRhoPHOTOSUserTreeAnalysis.C:60
 RhoRhoPHOTOSUserTreeAnalysis.C:61
 RhoRhoPHOTOSUserTreeAnalysis.C:62
 RhoRhoPHOTOSUserTreeAnalysis.C:63
 RhoRhoPHOTOSUserTreeAnalysis.C:64
 RhoRhoPHOTOSUserTreeAnalysis.C:65
 RhoRhoPHOTOSUserTreeAnalysis.C:66
 RhoRhoPHOTOSUserTreeAnalysis.C:67
 RhoRhoPHOTOSUserTreeAnalysis.C:68
 RhoRhoPHOTOSUserTreeAnalysis.C:69
 RhoRhoPHOTOSUserTreeAnalysis.C:70
 RhoRhoPHOTOSUserTreeAnalysis.C:71
 RhoRhoPHOTOSUserTreeAnalysis.C:72
 RhoRhoPHOTOSUserTreeAnalysis.C:73
 RhoRhoPHOTOSUserTreeAnalysis.C:74
 RhoRhoPHOTOSUserTreeAnalysis.C:75
 RhoRhoPHOTOSUserTreeAnalysis.C:76
 RhoRhoPHOTOSUserTreeAnalysis.C:77
 RhoRhoPHOTOSUserTreeAnalysis.C:78
 RhoRhoPHOTOSUserTreeAnalysis.C:79
 RhoRhoPHOTOSUserTreeAnalysis.C:80
 RhoRhoPHOTOSUserTreeAnalysis.C:81
 RhoRhoPHOTOSUserTreeAnalysis.C:82
 RhoRhoPHOTOSUserTreeAnalysis.C:83
 RhoRhoPHOTOSUserTreeAnalysis.C:84
 RhoRhoPHOTOSUserTreeAnalysis.C:85
 RhoRhoPHOTOSUserTreeAnalysis.C:86
 RhoRhoPHOTOSUserTreeAnalysis.C:87
 RhoRhoPHOTOSUserTreeAnalysis.C:88
 RhoRhoPHOTOSUserTreeAnalysis.C:89
 RhoRhoPHOTOSUserTreeAnalysis.C:90
 RhoRhoPHOTOSUserTreeAnalysis.C:91
 RhoRhoPHOTOSUserTreeAnalysis.C:92
 RhoRhoPHOTOSUserTreeAnalysis.C:93
 RhoRhoPHOTOSUserTreeAnalysis.C:94
 RhoRhoPHOTOSUserTreeAnalysis.C:95
 RhoRhoPHOTOSUserTreeAnalysis.C:96
 RhoRhoPHOTOSUserTreeAnalysis.C:97
 RhoRhoPHOTOSUserTreeAnalysis.C:98
 RhoRhoPHOTOSUserTreeAnalysis.C:99
 RhoRhoPHOTOSUserTreeAnalysis.C:100
 RhoRhoPHOTOSUserTreeAnalysis.C:101
 RhoRhoPHOTOSUserTreeAnalysis.C:102
 RhoRhoPHOTOSUserTreeAnalysis.C:103
 RhoRhoPHOTOSUserTreeAnalysis.C:104
 RhoRhoPHOTOSUserTreeAnalysis.C:105
 RhoRhoPHOTOSUserTreeAnalysis.C:106
 RhoRhoPHOTOSUserTreeAnalysis.C:107
 RhoRhoPHOTOSUserTreeAnalysis.C:108
 RhoRhoPHOTOSUserTreeAnalysis.C:109
 RhoRhoPHOTOSUserTreeAnalysis.C:110
 RhoRhoPHOTOSUserTreeAnalysis.C:111
 RhoRhoPHOTOSUserTreeAnalysis.C:112
 RhoRhoPHOTOSUserTreeAnalysis.C:113
 RhoRhoPHOTOSUserTreeAnalysis.C:114
 RhoRhoPHOTOSUserTreeAnalysis.C:115
 RhoRhoPHOTOSUserTreeAnalysis.C:116
 RhoRhoPHOTOSUserTreeAnalysis.C:117
 RhoRhoPHOTOSUserTreeAnalysis.C:118
 RhoRhoPHOTOSUserTreeAnalysis.C:119
 RhoRhoPHOTOSUserTreeAnalysis.C:120
 RhoRhoPHOTOSUserTreeAnalysis.C:121
 RhoRhoPHOTOSUserTreeAnalysis.C:122
 RhoRhoPHOTOSUserTreeAnalysis.C:123
 RhoRhoPHOTOSUserTreeAnalysis.C:124
 RhoRhoPHOTOSUserTreeAnalysis.C:125
 RhoRhoPHOTOSUserTreeAnalysis.C:126
 RhoRhoPHOTOSUserTreeAnalysis.C:127
 RhoRhoPHOTOSUserTreeAnalysis.C:128
 RhoRhoPHOTOSUserTreeAnalysis.C:129
 RhoRhoPHOTOSUserTreeAnalysis.C:130
 RhoRhoPHOTOSUserTreeAnalysis.C:131
 RhoRhoPHOTOSUserTreeAnalysis.C:132
 RhoRhoPHOTOSUserTreeAnalysis.C:133
 RhoRhoPHOTOSUserTreeAnalysis.C:134
 RhoRhoPHOTOSUserTreeAnalysis.C:135
 RhoRhoPHOTOSUserTreeAnalysis.C:136
 RhoRhoPHOTOSUserTreeAnalysis.C:137
 RhoRhoPHOTOSUserTreeAnalysis.C:138
 RhoRhoPHOTOSUserTreeAnalysis.C:139
 RhoRhoPHOTOSUserTreeAnalysis.C:140
 RhoRhoPHOTOSUserTreeAnalysis.C:141
 RhoRhoPHOTOSUserTreeAnalysis.C:142
 RhoRhoPHOTOSUserTreeAnalysis.C:143
 RhoRhoPHOTOSUserTreeAnalysis.C:144
 RhoRhoPHOTOSUserTreeAnalysis.C:145
 RhoRhoPHOTOSUserTreeAnalysis.C:146
 RhoRhoPHOTOSUserTreeAnalysis.C:147
 RhoRhoPHOTOSUserTreeAnalysis.C:148
 RhoRhoPHOTOSUserTreeAnalysis.C:149
 RhoRhoPHOTOSUserTreeAnalysis.C:150
 RhoRhoPHOTOSUserTreeAnalysis.C:151
 RhoRhoPHOTOSUserTreeAnalysis.C:152
 RhoRhoPHOTOSUserTreeAnalysis.C:153
 RhoRhoPHOTOSUserTreeAnalysis.C:154
 RhoRhoPHOTOSUserTreeAnalysis.C:155
 RhoRhoPHOTOSUserTreeAnalysis.C:156
 RhoRhoPHOTOSUserTreeAnalysis.C:157
 RhoRhoPHOTOSUserTreeAnalysis.C:158
 RhoRhoPHOTOSUserTreeAnalysis.C:159
 RhoRhoPHOTOSUserTreeAnalysis.C:160
 RhoRhoPHOTOSUserTreeAnalysis.C:161
 RhoRhoPHOTOSUserTreeAnalysis.C:162
 RhoRhoPHOTOSUserTreeAnalysis.C:163
 RhoRhoPHOTOSUserTreeAnalysis.C:164
 RhoRhoPHOTOSUserTreeAnalysis.C:165
 RhoRhoPHOTOSUserTreeAnalysis.C:166
 RhoRhoPHOTOSUserTreeAnalysis.C:167
 RhoRhoPHOTOSUserTreeAnalysis.C:168
 RhoRhoPHOTOSUserTreeAnalysis.C:169
 RhoRhoPHOTOSUserTreeAnalysis.C:170
 RhoRhoPHOTOSUserTreeAnalysis.C:171
 RhoRhoPHOTOSUserTreeAnalysis.C:172
 RhoRhoPHOTOSUserTreeAnalysis.C:173
 RhoRhoPHOTOSUserTreeAnalysis.C:174
 RhoRhoPHOTOSUserTreeAnalysis.C:175
 RhoRhoPHOTOSUserTreeAnalysis.C:176
 RhoRhoPHOTOSUserTreeAnalysis.C:177
 RhoRhoPHOTOSUserTreeAnalysis.C:178
 RhoRhoPHOTOSUserTreeAnalysis.C:179
 RhoRhoPHOTOSUserTreeAnalysis.C:180
 RhoRhoPHOTOSUserTreeAnalysis.C:181
 RhoRhoPHOTOSUserTreeAnalysis.C:182
 RhoRhoPHOTOSUserTreeAnalysis.C:183
 RhoRhoPHOTOSUserTreeAnalysis.C:184
 RhoRhoPHOTOSUserTreeAnalysis.C:185
 RhoRhoPHOTOSUserTreeAnalysis.C:186
 RhoRhoPHOTOSUserTreeAnalysis.C:187
 RhoRhoPHOTOSUserTreeAnalysis.C:188
 RhoRhoPHOTOSUserTreeAnalysis.C:189
 RhoRhoPHOTOSUserTreeAnalysis.C:190
 RhoRhoPHOTOSUserTreeAnalysis.C:191
 RhoRhoPHOTOSUserTreeAnalysis.C:192
 RhoRhoPHOTOSUserTreeAnalysis.C:193
 RhoRhoPHOTOSUserTreeAnalysis.C:194
 RhoRhoPHOTOSUserTreeAnalysis.C:195
 RhoRhoPHOTOSUserTreeAnalysis.C:196
 RhoRhoPHOTOSUserTreeAnalysis.C:197
 RhoRhoPHOTOSUserTreeAnalysis.C:198
 RhoRhoPHOTOSUserTreeAnalysis.C:199
 RhoRhoPHOTOSUserTreeAnalysis.C:200
 RhoRhoPHOTOSUserTreeAnalysis.C:201
 RhoRhoPHOTOSUserTreeAnalysis.C:202
 RhoRhoPHOTOSUserTreeAnalysis.C:203
 RhoRhoPHOTOSUserTreeAnalysis.C:204
 RhoRhoPHOTOSUserTreeAnalysis.C:205
 RhoRhoPHOTOSUserTreeAnalysis.C:206
 RhoRhoPHOTOSUserTreeAnalysis.C:207
 RhoRhoPHOTOSUserTreeAnalysis.C:208
 RhoRhoPHOTOSUserTreeAnalysis.C:209
 RhoRhoPHOTOSUserTreeAnalysis.C:210
 RhoRhoPHOTOSUserTreeAnalysis.C:211
 RhoRhoPHOTOSUserTreeAnalysis.C:212
 RhoRhoPHOTOSUserTreeAnalysis.C:213
 RhoRhoPHOTOSUserTreeAnalysis.C:214
 RhoRhoPHOTOSUserTreeAnalysis.C:215
 RhoRhoPHOTOSUserTreeAnalysis.C:216
 RhoRhoPHOTOSUserTreeAnalysis.C:217
 RhoRhoPHOTOSUserTreeAnalysis.C:218
 RhoRhoPHOTOSUserTreeAnalysis.C:219
 RhoRhoPHOTOSUserTreeAnalysis.C:220
 RhoRhoPHOTOSUserTreeAnalysis.C:221
 RhoRhoPHOTOSUserTreeAnalysis.C:222
 RhoRhoPHOTOSUserTreeAnalysis.C:223
 RhoRhoPHOTOSUserTreeAnalysis.C:224
 RhoRhoPHOTOSUserTreeAnalysis.C:225
 RhoRhoPHOTOSUserTreeAnalysis.C:226
 RhoRhoPHOTOSUserTreeAnalysis.C:227
 RhoRhoPHOTOSUserTreeAnalysis.C:228
 RhoRhoPHOTOSUserTreeAnalysis.C:229
 RhoRhoPHOTOSUserTreeAnalysis.C:230
 RhoRhoPHOTOSUserTreeAnalysis.C:231
 RhoRhoPHOTOSUserTreeAnalysis.C:232
 RhoRhoPHOTOSUserTreeAnalysis.C:233
 RhoRhoPHOTOSUserTreeAnalysis.C:234
 RhoRhoPHOTOSUserTreeAnalysis.C:235
 RhoRhoPHOTOSUserTreeAnalysis.C:236
 RhoRhoPHOTOSUserTreeAnalysis.C:237
 RhoRhoPHOTOSUserTreeAnalysis.C:238
 RhoRhoPHOTOSUserTreeAnalysis.C:239
 RhoRhoPHOTOSUserTreeAnalysis.C:240
 RhoRhoPHOTOSUserTreeAnalysis.C:241
 RhoRhoPHOTOSUserTreeAnalysis.C:242
 RhoRhoPHOTOSUserTreeAnalysis.C:243
 RhoRhoPHOTOSUserTreeAnalysis.C:244
 RhoRhoPHOTOSUserTreeAnalysis.C:245
 RhoRhoPHOTOSUserTreeAnalysis.C:246
 RhoRhoPHOTOSUserTreeAnalysis.C:247
 RhoRhoPHOTOSUserTreeAnalysis.C:248
 RhoRhoPHOTOSUserTreeAnalysis.C:249
 RhoRhoPHOTOSUserTreeAnalysis.C:250
 RhoRhoPHOTOSUserTreeAnalysis.C:251
 RhoRhoPHOTOSUserTreeAnalysis.C:252
 RhoRhoPHOTOSUserTreeAnalysis.C:253
 RhoRhoPHOTOSUserTreeAnalysis.C:254
 RhoRhoPHOTOSUserTreeAnalysis.C:255
 RhoRhoPHOTOSUserTreeAnalysis.C:256
 RhoRhoPHOTOSUserTreeAnalysis.C:257
 RhoRhoPHOTOSUserTreeAnalysis.C:258
 RhoRhoPHOTOSUserTreeAnalysis.C:259
 RhoRhoPHOTOSUserTreeAnalysis.C:260
 RhoRhoPHOTOSUserTreeAnalysis.C:261
 RhoRhoPHOTOSUserTreeAnalysis.C:262
 RhoRhoPHOTOSUserTreeAnalysis.C:263
 RhoRhoPHOTOSUserTreeAnalysis.C:264
 RhoRhoPHOTOSUserTreeAnalysis.C:265
 RhoRhoPHOTOSUserTreeAnalysis.C:266
 RhoRhoPHOTOSUserTreeAnalysis.C:267
 RhoRhoPHOTOSUserTreeAnalysis.C:268
 RhoRhoPHOTOSUserTreeAnalysis.C:269
 RhoRhoPHOTOSUserTreeAnalysis.C:270
 RhoRhoPHOTOSUserTreeAnalysis.C:271
 RhoRhoPHOTOSUserTreeAnalysis.C:272
 RhoRhoPHOTOSUserTreeAnalysis.C:273
 RhoRhoPHOTOSUserTreeAnalysis.C:274
 RhoRhoPHOTOSUserTreeAnalysis.C:275
 RhoRhoPHOTOSUserTreeAnalysis.C:276
 RhoRhoPHOTOSUserTreeAnalysis.C:277
 RhoRhoPHOTOSUserTreeAnalysis.C:278
 RhoRhoPHOTOSUserTreeAnalysis.C:279
 RhoRhoPHOTOSUserTreeAnalysis.C:280
 RhoRhoPHOTOSUserTreeAnalysis.C:281
 RhoRhoPHOTOSUserTreeAnalysis.C:282
 RhoRhoPHOTOSUserTreeAnalysis.C:283
 RhoRhoPHOTOSUserTreeAnalysis.C:284
 RhoRhoPHOTOSUserTreeAnalysis.C:285
 RhoRhoPHOTOSUserTreeAnalysis.C:286
 RhoRhoPHOTOSUserTreeAnalysis.C:287
 RhoRhoPHOTOSUserTreeAnalysis.C:288
 RhoRhoPHOTOSUserTreeAnalysis.C:289
 RhoRhoPHOTOSUserTreeAnalysis.C:290
 RhoRhoPHOTOSUserTreeAnalysis.C:291
 RhoRhoPHOTOSUserTreeAnalysis.C:292
 RhoRhoPHOTOSUserTreeAnalysis.C:293
 RhoRhoPHOTOSUserTreeAnalysis.C:294
 RhoRhoPHOTOSUserTreeAnalysis.C:295
 RhoRhoPHOTOSUserTreeAnalysis.C:296
 RhoRhoPHOTOSUserTreeAnalysis.C:297
 RhoRhoPHOTOSUserTreeAnalysis.C:298
 RhoRhoPHOTOSUserTreeAnalysis.C:299
 RhoRhoPHOTOSUserTreeAnalysis.C:300
 RhoRhoPHOTOSUserTreeAnalysis.C:301
 RhoRhoPHOTOSUserTreeAnalysis.C:302
 RhoRhoPHOTOSUserTreeAnalysis.C:303
 RhoRhoPHOTOSUserTreeAnalysis.C:304
 RhoRhoPHOTOSUserTreeAnalysis.C:305
 RhoRhoPHOTOSUserTreeAnalysis.C:306
 RhoRhoPHOTOSUserTreeAnalysis.C:307
 RhoRhoPHOTOSUserTreeAnalysis.C:308
 RhoRhoPHOTOSUserTreeAnalysis.C:309
 RhoRhoPHOTOSUserTreeAnalysis.C:310