37 #define VECTOR_SIZE 100
38 #define COINCIDENCE_LEVEL_OF_R3_CHARGED_HITS 0 // choose 0 - 4 folder of coincidence for charged particle hits in VDCs
61 : fCurrentEvent(0),fOriginalEvent(0),fDetectorInfo(detector_info),
62 fListCrossSections(false),fUseCrossSection(
""),fCrossSection(0)
142 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.enable-r2-hits",
144 "enable R2 hit reconstruction");
145 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.enable-r3-hits",
147 "enable R3 hit reconstruction");
148 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.enable-resolution",
150 "enable drift chamber resolution");
151 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.reconstruct-all",
153 "attempt reconstruction of all events, regardless of software trigger");
154 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.list-cross-sections",
156 "list which cross sections are available for fCrossSection");
157 options.
AddOptions(
"SimTracking options")(
"QwSimTracking.use-cross-section",
158 po::value<string>()->default_value(
""),
159 "specify which cross section to fill into fCrossSection");
197 unsigned int status = 1;
218 fFile =
new TFile (filename);
225 fTree = (TTree*)
fFile->Get(
"QweakSimG4_Tree");
227 QwError <<
"Could not find Geant4 Monte Carlo tree in file " << filename <<
QwLog::endl;
230 fTree->SetMakeClass(1);
278 std::vector<string>::iterator iter =
410 delete smearedhitlist;
415 delete originalhitlist;
465 std::vector<boost::shared_ptr<QwTreeLine> > treelinelist;
467 for (
size_t i = 0; i < treelinelist.size(); i++)
470 for (
size_t i = 0; i < treelinelist.size(); i++)
474 std::vector<boost::shared_ptr<QwPartialTrack> > partialtracklist;
476 for (
size_t i = 0; i < partialtracklist.size(); i++)
479 for (
size_t i = 0; i < partialtracklist.size(); i++)
495 fTree->GetEntry(entry);
502 bool is_charged_particle =
true;
505 if (abs(pdgcode) != 11) is_charged_particle =
false;
510 if (abs(pdgcode) != 11) is_charged_particle =
false;
515 if (abs(pdgcode) != 11) is_charged_particle =
false;
520 if (abs(pdgcode) != 11) is_charged_particle =
false;
525 if (abs(pdgcode) != 11) is_charged_particle =
false;
530 if (abs(pdgcode) != 11) is_charged_particle =
false;
535 if (abs(pdgcode) != 11) is_charged_particle =
false;
540 if (abs(pdgcode) != 11) is_charged_particle =
false;
545 if (abs(pdgcode) != 11) is_charged_particle =
false;
550 if (abs(pdgcode) != 11) is_charged_particle =
false;
555 if (abs(pdgcode) != 11) is_charged_particle =
false;
560 if (abs(pdgcode) != 11) is_charged_particle =
false;
575 is_charged_particle ;
578 int charge_particle_coincidence_hits = 0;
579 bool FU =
false, FV =
false, BU =
false, BV =
false;
583 if (abs(pdgcode) == 11) FU =
true;
588 if (abs(pdgcode) == 11) FV =
true;
593 if (abs(pdgcode) == 11) BU =
true;
598 if (abs(pdgcode) == 11) BV =
true;
601 charge_particle_coincidence_hits = (int) FU + (
int) FV + (int) BU + (
int) BV;
617 bool r3_geo_check_ok =
true;
620 for (
int j = 0; j < r3_min_hits && j <
VECTOR_SIZE; j++) {
621 r3_geo_check_ok = r3_geo_check_ok &&
636 is_charged_particle =
false;
639 if (abs(pdgcode) == 11) is_charged_particle =
true;
706 if (is_a_valid_track)
714 fTree->GetEntry(entry);
745 QwDebug <<
"Trigger Scintillator: "
775 std::vector<boost::shared_ptr<QwTreeLine> > treelinelist;
791 std::vector<TVector3> position, momentum;
792 std::vector<boost::shared_ptr<QwPartialTrack> > partialtracklist;
804 position.push_back(TVector3(rx,ry,rz));
808 momentum.push_back(TVector3(px,py,pz));
816 position.push_back(TVector3(rx,ry,rz));
820 momentum.push_back(TVector3(px,py,pz));
828 position.push_back(TVector3(rx,ry,rz));
832 momentum.push_back(TVector3(px,py,pz));
841 for (
size_t hit = 0; hit < position.size(); hit++) {
844 partialtracklist.push_back(boost::shared_ptr<QwPartialTrack>(partialtrack));
848 return partialtracklist;
862 const bool set_hit_numbers =
false;
886 QwDebug <<
"Processing Region1_ChamberFront_WirePlane: "
896 std::vector<QwHit> hits =
CreateHitRegion1(detectorinfo,x,y,resolution_effects);
898 for (
size_t i = 0; i < hits.size(); i++)
900 hits[i].SetHitNumber(hitcounter++);
904 }
catch (std::exception&) {
909 QwDebug <<
"No code for processing Region1_ChamberBack_WirePlane: "
919 std::vector<QwHit> hits =
CreateHitRegion1(detectorinfo,x,y,resolution_effects);
921 for (
size_t i = 0; i < hits.size(); i++)
923 hits[i].SetHitNumber(hitcounter++);
927 }
catch (std::exception&) {
937 QwDebug <<
"Processing Region2_ChamberFront_WirePlane1: "
976 hitlist->push_back(*hit);
981 }
catch (std::exception&) {
985 QwDebug <<
"Processing Region2_ChamberFront_WirePlane2: "
1021 hitlist->push_back(*hit);
1026 }
catch (std::exception&) {
1030 QwDebug <<
"Processing Region2_ChamberFront_WirePlane3: "
1066 hitlist->push_back(*hit);
1071 }
catch (std::exception&) {
1075 QwDebug <<
"Processing Region2_ChamberFront_WirePlane4: "
1111 hitlist->push_back(*hit);
1116 }
catch (std::exception&) {
1120 QwDebug <<
"Processing Region2_ChamberFront_WirePlane5: "
1156 hitlist->push_back(*hit);
1161 }
catch (std::exception&) {
1165 QwDebug <<
"Processing Region2_ChamberFront_WirePlane6: "
1201 hitlist->push_back(*hit);
1206 }
catch (std::exception&) {
1211 QwDebug <<
"Processing Region2_ChamberBack_WirePlane1: "
1247 hitlist->push_back(*hit);
1252 }
catch (std::exception&) {
1256 QwDebug <<
"Processing Region2_ChamberBack_WirePlane2: "
1292 hitlist->push_back(*hit);
1297 }
catch (std::exception&) {
1301 QwDebug <<
"Processing Region2_ChamberBack_WirePlane3: "
1337 hitlist->push_back(*hit);
1342 }
catch (std::exception&) {
1348 QwDebug <<
"Processing Region2_ChamberBack_WirePlane4: "
1387 boost::uniform_real<double> u(0, 100);
1388 static boost::variate_generator<boost::mt19937, boost::uniform_real<double> > gen(rng, u);
1389 double random_percent = gen();
1399 hitlist->push_back(*hit);
1404 }
catch (std::exception&) {
1409 QwDebug <<
"Processing Region2_ChamberBack_WirePlane5: "
1445 hitlist->push_back(*hit);
1450 }
catch (std::exception&) {
1454 QwDebug <<
"Processing Region2_ChamberBack_WirePlane6: "
1490 hitlist->push_back(*hit);
1495 }
catch (std::exception&) {
1540 QwDebug <<
"Processing Region3_ChamberFront_WirePlaneU: "
1556 if (abs(pdgcode) != 11)
continue;
1576 double z = zGlobalMC - originZ;
1582 double xx = cos_theta*x - sin_theta*z;
1584 double zz = sin_theta*x + cos_theta*z;
1585 x = xx; y = yy; z = zz;
1600 double pz = pzGlobalMC;
1603 double pxLocalMC = cos_theta * px - sin_theta * pz;
1604 double pyLocalMC = py;
1605 double pzLocalMC = sin_theta * px + cos_theta * pz;
1608 double mx = pxLocalMC / pzLocalMC;
1609 double my = pyLocalMC / pzLocalMC;
1612 std::vector<QwHit> hits =
CreateHitRegion3(detectorinfo,x,y,mx,my,resolution_effects);
1615 for (
size_t i = 0; i < hits.size(); i++)
1616 if (set_hit_numbers)
1617 hits[i].SetHitNumber(hitcounter++);
1623 }
catch (std::exception&) {
1627 QwDebug <<
"Processing Region3_ChamberFront_WirePlaneV: "
1644 if (abs(pdgcode) != 11)
continue;
1664 double z = zGlobalMC - originZ;
1670 double xx = cos_theta*x - sin_theta*z;
1672 double zz = sin_theta*x + cos_theta*z;
1673 x = xx; y = yy; z = zz;
1689 double pz = pzGlobalMC;
1692 double pxLocalMC = cos_theta * px - sin_theta * pz;
1693 double pyLocalMC = py;
1694 double pzLocalMC = sin_theta * px + cos_theta * pz;
1697 double mx = pxLocalMC / pzLocalMC;
1698 double my = pyLocalMC / pzLocalMC;
1701 std::vector<QwHit> hits =
CreateHitRegion3(detectorinfo,x,y,mx,my,resolution_effects);
1704 for (
size_t i = 0; i < hits.size(); i++)
1705 if (set_hit_numbers)
1706 hits[i].SetHitNumber(hitcounter++);
1712 }
catch (std::exception&) {
1717 QwDebug <<
"Processing Region3_ChamberBack_WirePlaneU: "
1733 if (abs(pdgcode) != 11)
continue;
1753 double z = zGlobalMC - originZ;
1759 double xx = cos_theta*x - sin_theta*z;
1761 double zz = sin_theta*x + cos_theta*z;
1762 x = xx; y = yy; z = zz;
1778 double pz = pzGlobalMC;
1781 double pxLocalMC = cos_theta * px - sin_theta * pz;
1782 double pyLocalMC = py;
1783 double pzLocalMC = sin_theta * px + cos_theta * pz;
1786 double mx = pxLocalMC / pzLocalMC;
1787 double my = pyLocalMC / pzLocalMC;
1790 std::vector<QwHit> hits =
CreateHitRegion3(detectorinfo,x,y,mx,my,resolution_effects);
1793 for (
size_t i = 0; i < hits.size(); i++)
1794 if (set_hit_numbers)
1795 hits[i].SetHitNumber(hitcounter++);
1801 }
catch (std::exception&) {
1805 QwDebug <<
"Processing Region3_ChamberBack_WirePlaneV: "
1821 if (abs(pdgcode) != 11)
continue;
1841 double z = zGlobalMC - originZ;
1847 double xx = cos_theta*x - sin_theta*z;
1849 double zz = sin_theta*x + cos_theta*z;
1850 x = xx; y = yy; z = zz;
1864 double pz = pzGlobalMC;
1867 double pxLocalMC = cos_theta * px - sin_theta * pz;
1868 double pyLocalMC = py;
1869 double pzLocalMC = sin_theta * px + cos_theta * pz;
1872 double mx = pxLocalMC / pzLocalMC;
1873 double my = pyLocalMC / pzLocalMC;
1876 std::vector<QwHit> hits =
CreateHitRegion3(detectorinfo,x,y,mx,my,resolution_effects);
1879 for (
size_t i = 0; i < hits.size(); i++)
1880 if (set_hit_numbers)
1881 hits[i].SetHitNumber(hitcounter++);
1887 }
catch (std::exception&) {
1893 QwDebug <<
"Processing Trigger Scintillator: "
1908 for (
size_t hit = 0; hit < hits.size(); hit++)
1909 if (set_hit_numbers)
1910 hits[hit].SetHitNumber(hitcounter++);
1915 }
catch (std::exception&) {
1920 QwDebug <<
"Processing Cerenkov: "
1938 for (
size_t hit = 0; hit < hits.size(); hit++)
1939 if (set_hit_numbers)
1940 hits[hit].SetHitNumber(hitcounter++);
1945 }
catch (std::exception&) {
1973 const double x_local,
const double y_local,
1974 const bool resolution_effects)
const
1981 int plane = detectorinfo->
GetPlane();
1991 double x = x_local + x_detector;
1992 double y = y_local + y_detector;
1993 double r = sqrt(x * x + y * y);
1996 std::vector<QwHit> hits;
2002 switch (direction) {
2004 strip1 = (int) floor ((r - offset) / spacing) - 2;
2005 strip2 = (int) floor ((r - offset) / spacing) + 2;
2008 strip1 = (int) floor ((y - offset) / spacing) - 2;
2009 strip2 = (int) floor ((y - offset) / spacing) + 2;
2012 QwError <<
"Direction " << direction <<
" not handled in CreateHitRegion1!" <<
QwLog::endl;
2017 for (
int strip = strip1; strip <= strip2; strip++) {
2020 if (strip <= 0 || strip > numberofelements)
continue;
2023 QwHit* hit =
new QwHit(0,0,0,0, region, package, octant, plane, direction, strip, 0);
2027 hits.push_back(*hit);
2057 const double x,
const double y,
2058 const bool resolution_effects)
const
2064 boost::uniform_real<double> u(0, 100);
2065 static boost::variate_generator<boost::mt19937, boost::uniform_real<double> > gen(rng, u);
2066 double random_percent = gen();
2079 int plane = detectorinfo->
GetPlane();
2089 double angleU = 0.0, angleV =
Qw::pi/2.0;
2090 if (direction ==
kDirectionU) { angleU = -angle; angleV = angle; }
2091 if (direction ==
kDirectionV) { angleU = angle; angleV = -angle; }
2094 Uv2xy uv2xy (angleU, angleV);
2099 switch (direction) {
2105 w = uv2xy.
xy2u (x, y);
2108 w = uv2xy.
xy2v (x, y);
2111 QwError <<
"Direction " << direction <<
" not handled in CreateHitRegion2!" <<
QwLog::endl;
2116 int wire = (int) floor ((w - offset) / spacing + 0.5) + 1;
2131 double w_wire = offset + (wire - 1) * spacing;
2134 double mean_distance = fabs(w - w_wire);
2136 sigma_distance = 0.03;
2137 double distance = mean_distance;
2139 if (resolution_effects) {
2142 static boost::variate_generator
2143 < boost::mt19937, boost::normal_distribution<double> >
2146 distance = fabs(mean_distance + sigma_distance * normal());
2162 QwHit* hit =
new QwHit(0,0,0,0, region, package, octant, plane, direction, wire, 0);
2163 hit->SetDetectorInfo(detectorinfo);
2164 hit->SetDriftDistance(distance);
2165 hit->SetSpatialResolution(spacing);
2169 if (efficiency < 1.0 &&
double(rand() % 10000) / 10000.0 > efficiency) {
2201 const double x,
const double y,
2202 const double mx,
const double my,
2203 const bool resolution_effects)
const
2210 int plane = detectorinfo->
GetPlane();
2220 std::vector<QwHit> hits;
2225 boost::uniform_real<double> u(0, 100);
2226 static boost::variate_generator<boost::mt19937, boost::uniform_real<double> > gen(rng, u);
2227 double random_percent = gen();
2238 double angleU = 0.0, angleV =
Qw::pi/2.0;
2240 if (direction ==
kDirectionU) { angleU = -angle; angleV = angle; }
2241 if (direction ==
kDirectionV) { angleU = angle; angleV = -angle; }
2245 Uv2xy uv2xy (angleU, angleV);
2248 double x1 = 0.0, x2 = 0.0;
2249 switch (direction) {
2251 x1 = uv2xy.
xy2u (x - mx * dz/2, y - my * dz/2);
2252 x2 = uv2xy.
xy2u (x + mx * dz/2, y + my * dz/2);
2255 x1 = uv2xy.
xy2v (x - mx * dz/2, y - my * dz/2);
2256 x2 = uv2xy.
xy2v (x + mx * dz/2, y + my * dz/2);
2259 QwError <<
"Direction " << direction <<
" not handled in CreateHitRegion3!" <<
QwLog::endl;
2263 if (x1 > x2) {
double _x1 = x1; x1 = x2; x2 = _x1; }
2270 double x0 = (x1 + x2) / 2.0;
2273 int wire1 = (int) floor ((x1 - offset) / spacing + 0.5) + 1;
2274 int wire2 = (int) floor ((x2 - offset) / spacing + 0.5) + 1;
2277 for (
int wire = wire1; wire <= wire2; wire++) {
2291 x_wire = offset + (wire - 1) * spacing;
2293 x_wire = offset + wire * spacing;
2298 double mean_distance = dz * fabs(x0 - x_wire) / (x2 - x1);
2300 sigma_distance = 0.028;
2301 double distance = mean_distance;
2303 if (resolution_effects) {
2306 static boost::variate_generator
2307 < boost::mt19937, boost::normal_distribution<double> >
2310 distance = fabs(mean_distance + sigma_distance * normal());
2314 if (distance > dz/2) {
2320 QwHit* hit =
new QwHit(0,0,0,0, region, package, octant, plane, direction, wire, 0);
2329 if (efficiency == 1.0 ||
double(rand() % 10000) / 10000.0 < efficiency) {
2331 hits.push_back(*hit);
2353 const double x_local,
const double y_local)
const
2360 int plane = detectorinfo->
GetPlane();
2369 double y_min = 10.0;
2370 double y_max = 100.0;
2373 double x = x_local + x_detector;
2376 std::vector<QwHit> hits;
2382 yield =
static_cast<int>((y_max - y_min) * (x - x_min) / (x_max - x_min) * (x - x_min) / (x_max - x_min) + y_min);
2385 hit =
new QwHit(0,0,0,0, region, package, octant, plane, direction, 1, 0);
2386 hit->SetDetectorInfo(detectorinfo);
2387 hit->SetRawTime(yield);
2390 hits.push_back(*hit);
2395 yield =
static_cast<int>((y_max - y_min) * (-x - x_min) / (x_max - x_min) * (-x - x_min) / (x_max - x_min) + y_min);
2398 hit =
new QwHit(0,0,0,0, region, package, octant, plane, direction, 2, 0);
2399 hit->SetDetectorInfo(detectorinfo);
2400 hit->SetRawTime(yield);
2403 hits.push_back(*hit);
3079 fTree->SetBranchAddress(
"Primary.PrimaryQ2",
3081 fTree->SetBranchAddress(
"Primary.CrossSection",
3083 fTree->SetBranchAddress(
"Primary.CrossSectionWeight",
3085 fTree->SetBranchAddress(
"Primary.CrossSectionBornTotal",
3087 fTree->SetBranchAddress(
"Primary.CrossSectionBornInelastic",
3089 fTree->SetBranchAddress(
"Primary.CrossSectionBornQE",
3091 fTree->SetBranchAddress(
"Primary.CrossSectionRadTotal",
3093 fTree->SetBranchAddress(
"Primary.CrossSectionRadElastic",
3095 fTree->SetBranchAddress(
"Primary.CrossSectionRadQE",
3097 fTree->SetBranchAddress(
"Primary.CrossSectionRadDIS",
3099 fTree->SetBranchAddress(
"Primary.CrossSectionRadTotalIntOnly",
3101 fTree->SetBranchAddress(
"Primary.CrossSectionRadElasticIntOnly",
3103 fTree->SetBranchAddress(
"Primary.CrossSectionRadQEIntOnly",
3105 fTree->SetBranchAddress(
"Primary.CrossSectionRadDISIntOnly",
3107 fTree->SetBranchAddress(
"Primary.CrossSectionRadElasticPeak",
3109 fTree->SetBranchAddress(
"Primary.OriginVertexPositionX",
3111 fTree->SetBranchAddress(
"Primary.OriginVertexPositionY",
3113 fTree->SetBranchAddress(
"Primary.OriginVertexPositionZ",
3115 fTree->SetBranchAddress(
"Primary.OriginVertexTotalEnergy",
3117 fTree->SetBranchAddress(
"Primary.OriginVertexKineticEnergy",
3119 fTree->SetBranchAddress(
"Primary.OriginVertexMomentumDirectionX",
3121 fTree->SetBranchAddress(
"Primary.OriginVertexMomentumDirectionY",
3123 fTree->SetBranchAddress(
"Primary.OriginVertexMomentumDirectionZ",
3126 fTree->SetBranchAddress(
"Primary.OriginVertexThetaAngle",
3128 fTree->SetBranchAddress(
"Primary.PreScatteringKineticEnergy",
3133 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneHasBeenHit",
3135 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.NbOfHits",
3137 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalPositionX",
3139 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalPositionY",
3141 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalPositionZ",
3143 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalMomentumX",
3145 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalMomentumY",
3147 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneLocalMomentumZ",
3149 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalPositionX",
3151 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalPositionY",
3153 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalPositionZ",
3155 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalMomentumX",
3157 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalMomentumY",
3159 fTree->SetBranchAddress(
"Region1.ChamberFront.WirePlane.PlaneGlobalMomentumZ",
3162 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneHasBeenHit",
3164 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.NbOfHits",
3166 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalPositionX",
3168 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalPositionY",
3170 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalPositionZ",
3172 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalMomentumX",
3174 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalMomentumY",
3176 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneLocalMomentumZ",
3178 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalPositionX",
3180 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalPositionY",
3182 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalPositionZ",
3184 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalMomentumX",
3186 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalMomentumY",
3188 fTree->SetBranchAddress(
"Region1.ChamberBack.WirePlane.PlaneGlobalMomentumZ",
3194 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneHasBeenHit",
3196 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.NbOfHits",
3198 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane1.ParticleType"))
3199 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.ParticleType",
3201 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane1.PackageID"))
3202 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PackageID",
3204 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalPositionX",
3206 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalPositionY",
3208 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalPositionZ",
3210 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalMomentumX",
3212 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalMomentumY",
3214 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneLocalMomentumZ",
3216 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalPositionX",
3218 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalPositionY",
3220 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalPositionZ",
3222 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalMomentumX",
3224 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalMomentumY",
3226 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane1.PlaneGlobalMomentumZ",
3229 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneHasBeenHit",
3231 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.NbOfHits",
3233 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane1.ParticleType"))
3234 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.ParticleType",
3236 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane1.PackageID"))
3237 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PackageID",
3239 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalPositionX",
3241 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalPositionY",
3243 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalPositionZ",
3245 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalMomentumX",
3247 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalMomentumY",
3249 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneLocalMomentumZ",
3251 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalPositionX",
3253 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalPositionY",
3255 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalPositionZ",
3257 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalMomentumX",
3259 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalMomentumY",
3261 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane1.PlaneGlobalMomentumZ",
3265 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneHasBeenHit",
3267 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.NbOfHits",
3269 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane2.ParticleType"))
3270 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.ParticleType",
3272 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane2.PackageID"))
3273 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PackageID",
3275 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalPositionX",
3277 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalPositionY",
3279 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalPositionZ",
3281 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalMomentumX",
3283 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalMomentumY",
3285 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneLocalMomentumZ",
3287 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalPositionX",
3289 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalPositionY",
3291 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalPositionZ",
3293 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalMomentumX",
3295 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalMomentumY",
3297 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane2.PlaneGlobalMomentumZ",
3300 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneHasBeenHit",
3302 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.NbOfHits",
3304 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane2.ParticleType"))
3305 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.ParticleType",
3307 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane2.PackageID"))
3308 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PackageID",
3310 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalPositionX",
3312 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalPositionY",
3314 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalPositionZ",
3316 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalMomentumX",
3318 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalMomentumY",
3320 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneLocalMomentumZ",
3322 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalPositionX",
3324 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalPositionY",
3326 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalPositionZ",
3328 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalMomentumX",
3330 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalMomentumY",
3332 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane2.PlaneGlobalMomentumZ",
3336 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneHasBeenHit",
3338 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.NbOfHits",
3340 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane3.ParticleType"))
3341 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.ParticleType",
3343 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane3.PackageID"))
3344 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PackageID",
3346 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalPositionX",
3348 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalPositionY",
3350 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalPositionZ",
3352 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalMomentumX",
3354 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalMomentumY",
3356 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneLocalMomentumZ",
3358 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalPositionX",
3360 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalPositionY",
3362 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalPositionZ",
3364 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalMomentumX",
3366 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalMomentumY",
3368 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane3.PlaneGlobalMomentumZ",
3371 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneHasBeenHit",
3373 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.NbOfHits",
3375 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane3.ParticleType"))
3376 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.ParticleType",
3378 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane3.PackageID"))
3379 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PackageID",
3381 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalPositionX",
3383 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalPositionY",
3385 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalPositionZ",
3387 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalMomentumX",
3389 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalMomentumY",
3391 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneLocalMomentumZ",
3393 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalPositionX",
3395 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalPositionY",
3397 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalPositionZ",
3399 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalMomentumX",
3401 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalMomentumY",
3403 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane3.PlaneGlobalMomentumZ",
3407 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneHasBeenHit",
3409 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.NbOfHits",
3411 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane4.ParticleType"))
3412 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.ParticleType",
3414 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane4.PackageID"))
3415 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PackageID",
3417 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalPositionX",
3419 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalPositionY",
3421 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalPositionZ",
3423 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalMomentumX",
3425 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalMomentumY",
3427 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneLocalMomentumZ",
3429 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalPositionX",
3431 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalPositionY",
3433 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalPositionZ",
3435 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalMomentumX",
3437 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalMomentumY",
3439 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane4.PlaneGlobalMomentumZ",
3442 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneHasBeenHit",
3444 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.NbOfHits",
3446 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane4.ParticleType"))
3447 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.ParticleType",
3449 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane4.PackageID"))
3450 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PackageID",
3452 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalPositionX",
3454 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalPositionY",
3456 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalPositionZ",
3458 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalMomentumX",
3460 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalMomentumY",
3462 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneLocalMomentumZ",
3464 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalPositionX",
3466 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalPositionY",
3468 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalPositionZ",
3470 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalMomentumX",
3472 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalMomentumY",
3474 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane4.PlaneGlobalMomentumZ",
3478 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneHasBeenHit",
3480 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.NbOfHits",
3482 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane5.ParticleType"))
3483 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.ParticleType",
3485 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane5.PackageID"))
3486 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PackageID",
3488 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalPositionX",
3490 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalPositionY",
3492 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalPositionZ",
3494 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalMomentumX",
3496 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalMomentumY",
3498 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneLocalMomentumZ",
3500 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalPositionX",
3502 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalPositionY",
3504 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalPositionZ",
3506 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalMomentumX",
3508 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalMomentumY",
3510 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane5.PlaneGlobalMomentumZ",
3513 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneHasBeenHit",
3515 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.NbOfHits",
3517 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane5.ParticleType"))
3518 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.ParticleType",
3520 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane5.PackageID"))
3521 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PackageID",
3523 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalPositionX",
3525 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalPositionY",
3527 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalPositionZ",
3529 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalMomentumX",
3531 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalMomentumY",
3533 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneLocalMomentumZ",
3535 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalPositionX",
3537 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalPositionY",
3539 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalPositionZ",
3541 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalMomentumX",
3543 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalMomentumY",
3545 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane5.PlaneGlobalMomentumZ",
3549 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneHasBeenHit",
3551 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.NbOfHits",
3553 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane6.ParticleType"))
3554 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.ParticleType",
3556 if(
fTree->FindLeaf(
"Region2.ChamberFront.WirePlane6.PackageID"))
3557 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PackageID",
3559 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalPositionX",
3561 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalPositionY",
3563 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalPositionZ",
3565 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalMomentumX",
3567 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalMomentumY",
3569 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneLocalMomentumZ",
3571 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalPositionX",
3573 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalPositionY",
3575 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalPositionZ",
3577 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalMomentumX",
3579 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalMomentumY",
3581 fTree->SetBranchAddress(
"Region2.ChamberFront.WirePlane6.PlaneGlobalMomentumZ",
3584 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneHasBeenHit",
3586 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.NbOfHits",
3588 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane6.ParticleType"))
3589 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.ParticleType",
3591 if(
fTree->FindLeaf(
"Region2.ChamberBack.WirePlane6.PackageID"))
3592 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PackageID",
3594 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalPositionX",
3596 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalPositionY",
3598 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalPositionZ",
3600 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalMomentumX",
3602 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalMomentumY",
3604 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneLocalMomentumZ",
3606 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalPositionX",
3608 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalPositionY",
3610 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalPositionZ",
3612 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalMomentumX",
3614 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalMomentumY",
3616 fTree->SetBranchAddress(
"Region2.ChamberBack.WirePlane6.PlaneGlobalMomentumZ",
3621 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.HasBeenHit",
3623 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.NbOfHits",
3625 if(
fTree->FindLeaf(
"Region3.ChamberFront.WirePlaneU.ParticleType"))
3626 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.ParticleType",
3628 if(
fTree->FindLeaf(
"Region3.ChamberFront.WirePlaneU.PackageID"))
3629 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.PackageID",
3631 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalPositionX",
3633 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalPositionY",
3635 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalPositionZ",
3637 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionX",
3639 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionY",
3641 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionZ",
3643 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalMomentumX",
3645 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalMomentumY",
3647 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.LocalMomentumZ",
3649 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionX",
3651 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionY",
3653 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalPositionZ",
3655 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalMomentumX",
3657 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalMomentumY",
3659 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneU.GlobalMomentumZ",
3662 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.HasBeenHit",
3664 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.NbOfHits",
3666 if(
fTree->FindLeaf(
"Region3.ChamberFront.WirePlaneV.ParticleType"))
3667 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.ParticleType",
3669 if(
fTree->FindLeaf(
"Region3.ChamberFront.WirePlaneV.PackageID"))
3670 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.PackageID",
3672 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalPositionX",
3674 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalPositionY",
3676 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalPositionZ",
3678 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalMomentumX",
3680 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalMomentumY",
3682 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.LocalMomentumZ",
3684 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalPositionX",
3686 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalPositionY",
3688 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalPositionZ",
3690 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalMomentumX",
3692 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalMomentumY",
3694 fTree->SetBranchAddress(
"Region3.ChamberFront.WirePlaneV.GlobalMomentumZ",
3697 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.HasBeenHit",
3699 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.NbOfHits",
3701 if(
fTree->FindLeaf(
"Region3.ChamberBack.WirePlaneU.ParticleType"))
3702 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.ParticleType",
3704 if(
fTree->FindLeaf(
"Region3.ChamberBack.WirePlaneU.PackageID"))
3705 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.PackageID",
3707 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalPositionX",
3709 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalPositionY",
3711 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalPositionZ",
3713 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalMomentumX",
3715 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalMomentumY",
3717 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.LocalMomentumZ",
3719 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalPositionX",
3721 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalPositionY",
3723 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalPositionZ",
3725 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalMomentumX",
3727 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalMomentumY",
3729 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneU.GlobalMomentumZ",
3732 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.HasBeenHit",
3734 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.NbOfHits",
3736 if(
fTree->FindLeaf(
"Region3.ChamberBack.WirePlaneV.ParticleType"))
3737 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.ParticleType",
3739 if(
fTree->FindLeaf(
"Region3.ChamberBack.WirePlaneV.PackageID"))
3740 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.PackageID",
3742 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalPositionX",
3744 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalPositionY",
3746 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalPositionZ",
3748 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalMomentumX",
3750 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalMomentumY",
3752 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.LocalMomentumZ",
3754 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalPositionX",
3756 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalPositionY",
3758 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalPositionZ",
3760 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalMomentumX",
3762 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalMomentumY",
3764 fTree->SetBranchAddress(
"Region3.ChamberBack.WirePlaneV.GlobalMomentumZ",
3769 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HasBeenHit",
3771 fTree->SetBranchAddress(
"TriggerScintillator.Detector.NbOfHits",
3773 if(
fTree->FindLeaf(
"TriggerScintillator.Detector.ParticleType"))
3774 fTree->SetBranchAddress(
"TriggerScintillator.Detector.ParticleType",
3776 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalPositionX",
3778 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalPositionY",
3780 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalPositionZ",
3782 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalExitPositionX",
3784 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalExitPositionY",
3786 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitLocalExitPositionZ",
3788 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitGlobalPositionX",
3790 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitGlobalPositionY",
3792 fTree->SetBranchAddress(
"TriggerScintillator.Detector.HitGlobalPositionZ",
3797 fTree->SetBranchAddress(
"Cerenkov.Detector.DetectorID",
3799 fTree->SetBranchAddress(
"Cerenkov.Detector.HasBeenHit",
3801 fTree->SetBranchAddress(
"Cerenkov.Detector.NbOfHits",
3803 if (strcmp(
fTree->FindLeaf(
"Cerenkov.PMT.PMTTotalNbOfHits")->GetTypeName(),
"vector<Int_t>") == 0)
3804 fTree->SetBranchAddress(
"Cerenkov.PMT.PMTTotalNbOfHits",
3806 if (strcmp(
fTree->FindLeaf(
"Cerenkov.PMT.PMTTotalNbOfPEs")->GetTypeName(),
"vector<Int_t>") == 0)
3807 fTree->SetBranchAddress(
"Cerenkov.PMT.PMTTotalNbOfPEs",
3809 if (strcmp(
fTree->FindLeaf(
"Cerenkov.PMT.PMTLeftNbOfPEs")->GetTypeName(),
"vector<Int_t>") == 0)
3810 fTree->SetBranchAddress(
"Cerenkov.PMT.PMTLeftNbOfPEs",
3812 if (strcmp(
fTree->FindLeaf(
"Cerenkov.PMT.PMTRightNbOfPEs")->GetTypeName(),
"vector<Int_t>") == 0)
3813 fTree->SetBranchAddress(
"Cerenkov.PMT.PMTRightNbOfPEs",
3815 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalPositionX",
3817 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalPositionY",
3819 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalPositionZ",
3821 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalExitPositionX",
3823 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalExitPositionY",
3825 fTree->SetBranchAddress(
"Cerenkov.Detector.HitLocalExitPositionZ",
3827 fTree->SetBranchAddress(
"Cerenkov.Detector.HitGlobalPositionX",
3829 fTree->SetBranchAddress(
"Cerenkov.Detector.HitGlobalPositionY",
3831 fTree->SetBranchAddress(
"Cerenkov.Detector.HitGlobalPositionZ",
3855 QwMessage<<
"Hit R2 & TS & MD: "<<QwTreeEventBuffer::fNumOfSimulated_R2_TS_MD_Tracks<<
QwLog::endl;
3857 QwMessage<<
"Hit R3 & TS & MD: "<<QwTreeEventBuffer::fNumOfSimulated_R3_TS_MD_Tracks<<
QwLog::endl;
3859 QwMessage<<
"Hit R2 & R3 & TS & MD: "<<QwTreeEventBuffer::fNumOfSimulated_ValidTracks<<
"\n"<<
QwLog::endl;
3867 if (QwTreeEventBuffer::fNumOfSimulated_R2_TS_MD_Tracks>0)
3868 QwMessage <<
"\nRegion 2 partial track finding efficiency: "
3869 << r2good<<
"/"<<QwTreeEventBuffer::fNumOfSimulated_R2_TS_MD_Tracks<<
" = "
3870 <<(float)r2good/QwTreeEventBuffer::fNumOfSimulated_R2_TS_MD_Tracks*100<<
" \%"<<QwLog::endl;
3871 if (QwTreeEventBuffer::fNumOfSimulated_R3_TS_MD_Tracks>0)
3872 QwMessage <<
"Region 3 partial track finding efficiency: "
3873 << r3good<<
"/"<<QwTreeEventBuffer::fNumOfSimulated_R3_TS_MD_Tracks<<
" = "
3874 <<(float)r3good/QwTreeEventBuffer::fNumOfSimulated_R3_TS_MD_Tracks*100<<
" \%"<<QwLog::endl;
3876 if (TMath::Min(r2good,r3good)>0)
3878 << ngoodtracks<<
"/"<<TMath::Min(r2good,r3good)<<
" = "
3879 <<(float)ngoodtracks/TMath::Min(r2good,r3good)*100<<
" \%"<<
QwLog::endl;
3881 if (QwTreeEventBuffer::fNumOfSimulated_ValidTracks>0)
3883 << ngoodtracks<<
"/"<<QwTreeEventBuffer::fNumOfSimulated_ValidTracks<<
" = "
3884 <<(float)ngoodtracks/QwTreeEventBuffer::fNumOfSimulated_ValidTracks*100<<
" \%\n"<<QwLog::endl;
3889 TString TtoD_MapFile =
getenv_safe_string(
"QWANALYSIS")+
"/Tracking/prminput/R2_TtoDTable.12164-14000.map";
3895 while (line<131 && mapfile.good()) {
3896 mapfile >> time >> dist;
3928 for (t=1; t<=130; t++)
3946 double angle = (octant-1)*(-45.0*
Qw::deg);
3947 return x*cos(angle)-y*sin(angle);
3952 double angle = (octant-1)*(-45.0*
Qw::deg);
3953 return x*sin(angle)+y*cos(angle);
3958 double angle = (octant-1)*(-45.0*
Qw::deg);
3959 return px*cos(angle)-py*sin(angle);
3964 double angle = (octant-1)*(-45.0*
Qw::deg);
3965 return px*sin(angle)+py*cos(angle);
void PrintStatInfo(int r2good, int r3good, int ngoodtracks)
Print statistical information.
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalMomentumZ
vector< Float_t > fCerenkov_Detector_HitLocalExitPositionY
static const double pi
Angles: base unit is radian.
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalPositionX
Double_t fPrimaryQ2
< Momentum transfer Q^2 assuming elastic scattering with hydrogen energy loss
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalMomentumY
Float_t fPrimary_CrossSection
#define QwMessage
Predefined log drain for regular messages.
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalMomentumX
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalPositionZ
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalPositionY
vector< Int_t > fRegion2_ChamberBack_WirePlane4_PackageID
Int_t fRegion2_ChamberFront_WirePlane6_NbOfHits
Int_t fRegion2_ChamberBack_WirePlane3_NbOfHits
static int fNumOfSimulated_R3_TS_MD_Tracks
Int_t fRegion3_ChamberFront_WirePlaneV_NbOfHits
Int_t fRegion3_ChamberBack_WirePlaneV_HasBeenHit
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalPositionZ
Int_t fRegion2_ChamberFront_WirePlane1_NbOfHits
vector< Float_t > fCerenkov_Detector_HitLocalPositionY
int fNumberOfEntriesPerEvent
Number of entries to combine for each event (stacking)
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalPositionY
double xy2u(double x, double y)
Transform from [x,y] to u.
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalMomentumX
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalMomentumX
void AddTreeLine(const QwTreeLine *treeline)
Add an existing tree line as a copy.
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalMomentumZ
Float_t fTriggerScintillator_Detector_HitGlobalPositionZ
#define QwOut
Predefined log drain for explicit output.
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalMomentumZ
Float_t fPrimary_CrossSectionRadDISIntOnly
std::vector< float > fMD_TotalNbOfPEs
virtual ~QwTreeEventBuffer()
Destructor.
vector< Int_t > fRegion2_ChamberFront_WirePlane6_ParticleType
static int fNumOfSimulated_R2_R3_Tracks
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalMomentumZ
vector< Int_t > fRegion3_ChamberBack_WirePlaneU_ParticleType
double GetDetectorPitchSin() const
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalMomentumX
Float_t fPrimary_OriginVertexPositionZ
Float_t fTriggerScintillator_Detector_HitLocalExitPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalMomentumZ
#define default_bool_value(b)
void ReserveVectors()
Reserve space for the branch vectors.
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalPositionX
vector< Int_t > fRegion2_ChamberFront_WirePlane3_PackageID
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalMomentumY
std::vector< float > fMD_RightNbOfPEs
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalMomentumY
QwHitContainer * CreateHitList(const bool resolution_effects) const
Create the hit list for this entry.
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalMomentumY
double drop_off_R2_plane10_hits
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalMomentumY
static int fNumOfSimulated_TS_MD_Tracks
bool GetEntry(const unsigned int entry)
Read the specified entry from the tree.
std::vector< QwHit > CreateHitRegion1(const QwDetectorInfo *detectorinfo, const double x, const double y, const bool resolution_effects) const
Create a set of hits for one track in region 1.
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalPositionZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalMomentumY
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalPositionZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalMomentumX
const QwGeometry in(const EQwRegionID &r) const
Get detectors in given region.
Int_t fRegion1_ChamberBack_WirePlane_PlaneHasBeenHit
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalMomentumY
Int_t fRegion2_ChamberFront_WirePlane4_NbOfHits
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalPositionX
Float_t fPrimary_PreScatteringKineticEnergy
Float_t fTriggerScintillator_Detector_HitGlobalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalMomentumY
vector< Int_t > fRegion2_ChamberFront_WirePlane4_PackageID
double GetSpatialResolution() const
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalPositionY
void AddHitContainer(const QwHitContainer *hitlist)
Add the hits in a hit container as a copy.
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalMomentumY
vector< Int_t > fRegion2_ChamberFront_WirePlane2_PackageID
Float_t fTriggerScintillator_Detector_HitLocalExitPositionX
int GetNumberOfEntries() const
Get the number of entries in the loaded run.
QwHit * CreateHitRegion2(const QwDetectorInfo *detectorinfo, const double x, const double y, const bool resolution_effects) const
Create a hit for one track in region 2.
const TString getenv_safe_TString(const char *name)
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalMomentumY
TVector3 fVertexPosition
Vertex position.
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalPositionY
Int_t fRegion2_ChamberBack_WirePlane1_NbOfHits
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalPositionX
void SetEventHeader(const QwEventHeader &eventheader)
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalMomentumZ
Float_t fPrimary_CrossSectionRadDIS
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalMomentumY
boost::normal_distribution< double > fNormalDistribution
void SetHitNumber(const Int_t hitcount)
int fNumberOfEntries
Number of entries in the tree.
Contains header information of a tracked event.
void SetRegion(EQwRegionID region)
Set the region.
int fCurrentEventNumber
Current event number.
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalPositionX
double fScatteringAngle
Scattering angle.
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalMomentumZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalPositionY
QwEvent * fOriginalEvent
The original event from simulation.
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalMomentumZ
vector< Int_t > fRegion2_ChamberBack_WirePlane4_ParticleType
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalPositionZ
Float_t fPrimary_OriginVertexTotalEnergy
void ListCrossSections()
List the available cross sections.
int GetNumberOfEvents() const
Get the number of events in the run.
void LoadDriftTimeDistance()
Get drift distance from drift time or vice versa.
unsigned int OpenNextFile()
Open the next event file.
double fW2
Invariant mass squared of the recoiling target system.
std::vector< boost::shared_ptr< QwTreeLine > > CreateTreeLines(EQwRegionID region) const
Get the tree lines.
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalPositionZ
Definition of the class that reads simulated QweakSimG4 events.
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalPositionY
double fScatteringVertexR
Scattering vertex radial distance.
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalMomentumX
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalPositionZ
QwEvent * fCurrentEvent
The event to be reconstructed.
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalPositionZ
Int_t fRegion2_ChamberFront_WirePlane6_PlaneHasBeenHit
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalPositionZ
Float_t fPrimary_CrossSectionBornTotal
QwHitContainer * GetHitContainer() const
Get the hit list.
double GetActiveWidthY() const
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalMomentumX
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalPositionY
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalPositionZ
static int fNumOfSimulated_R2_TS_MD_Tracks
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalPositionY
void SetNumberOfEntries(const unsigned int n)
Get the number of entries in the loaded run.
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalMomentumX
EQwRegionID GetRegion() const
Int_t fRegion2_ChamberBack_WirePlane5_PlaneHasBeenHit
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalPositionX
#define QwVerbose
Predefined log drain for verbose messages.
vector< Int_t > fRegion3_ChamberFront_WirePlaneV_PackageID
EQwDirectionID GetDirection() const
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalMomentumY
QwKinematics fKin
Inclusive scattering.
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalPositionX
vector< Int_t > fRegion3_ChamberFront_WirePlaneU_ParticleType
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalPositionY
TVector3 fVertexMomentum
Vertex momentum.
bool is_Plane10_Wire18_OK
Int_t fRegion2_ChamberFront_WirePlane3_NbOfHits
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalMomentumX
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalMomentumZ
vector< Int_t > fRegion2_ChamberBack_WirePlane1_ParticleType
int fNumberOfEvents
Number of events in the tree (after combining entries)
Int_t fRegion2_ChamberFront_WirePlane1_PlaneHasBeenHit
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalPositionX
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalPositionY
Definition of the partial track class.
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalMomentumY
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalPositionX
Int_t fRegion2_ChamberBack_WirePlane4_NbOfHits
Int_t fRegion3_ChamberBack_WirePlaneV_NbOfHits
double GetDetectorPitchCos() const
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalMomentumY
Float_t fPrimary_OriginVertexMomentumDirectionZ
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalPositionY
vector< Int_t > fRegion2_ChamberFront_WirePlane1_PackageID
static int fNumOfSimulated_MD_Tracks
Bool_t fRegion3_HasBeenHit
vector< Float_t > fCerenkov_Detector_HitLocalExitPositionX
std::vector< QwHit > CreateHitRegion3(const QwDetectorInfo *detectorinfo, const double x, const double y, const double mx, const double my, const bool resolution_effects) const
Create a set of hits for one track in region 3.
double fP0
Incoming momentum .
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalPositionX
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalPositionX
static int fNumOfSimulated_ValidTracks
Set track counters.
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalPositionZ
int fCurrentRunNumber
Current run number.
double fDriftTimeDistance[131]
po::options_description_easy_init AddOptions(const std::string &blockname="Specialized options")
Add an option to a named block or create new block.
Float_t fTriggerScintillator_Detector_HitLocalPositionX
double GetElementOffset() const
Float_t fPrimary_OriginVertexKineticEnergy
vector< Float_t > fCerenkov_PMT_PMTLeftNbOfPEs
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalPositionY
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalPositionY
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalPositionZ
vector< Float_t > fCerenkov_Detector_HitGlobalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalMomentumZ
double fQ2
Four-momentum transfer squared .
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalPositionZ
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalPositionZ
Float_t fPrimary_CrossSectionRadQEIntOnly
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalMomentumX
Int_t fTriggerScintillator_Detector_HasBeenHit
T GetValue(const std::string &key)
Get a templated value.
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalPositionZ
Contains a tracked event, i.e. all information from hits to tracks.
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalMomentumX
Int_t fRegion3_ChamberBack_WirePlaneU_NbOfHits
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalMomentumY
Bool_t fTriggerScintillator_HasBeenHit
Float_t fPrimary_PrimaryQ2
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalMomentumY
std::pair< int, int > GetIntValuePair(const std::string &key)
Get a pair of integer values.
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalPositionY
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalPositionZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalPositionX
vector< Int_t > fRegion2_ChamberBack_WirePlane3_ParticleType
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalPositionX
static void DefineOptions(QwOptions &options)
Define command line and config file options.
double pyGlobalToLocal(double px, double py, int octant) const
#define QwDebug
Predefined log drain for debugging output.
vector< Int_t > fRegion2_ChamberFront_WirePlane5_ParticleType
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalMomentumX
vector< Int_t > fRegion3_ChamberBack_WirePlaneU_PackageID
Float_t fPrimary_CrossSectionRadElasticIntOnly
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneGlobalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalMomentumX
A logfile class, based on an identical class in the Hermes analyzer.
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalMomentumZ
double fNu
Energy loss of the electron .
Int_t fCerenkov_Detector_NbOfHits
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalPositionY
Draft skeleton for the decoding-to-QTR interface class.
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalPositionY
bool fReconstructAllEvents
void AttachBranches()
Attache the branch vectors.
vector< Float_t > fCerenkov_Detector_HitLocalExitPositionZ
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalMomentumY
#define COINCIDENCE_LEVEL_OF_R3_CHARGED_HITS
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalPositionY
double fPp
Outgoing momentum .
unsigned int OpenFile()
Open the event file.
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalMomentumX
Int_t fCerenkov_Detector_HasBeenHit
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalPositionX
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalMomentumY
double fScatteringVertexZ
Scattering vertex z position.
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalPositionY
void AddPartialTrack(const QwPartialTrack *partialtrack)
Add an existing partial track as a copy.
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalPositionZ
Int_t fRegion2_ChamberFront_WirePlane4_PlaneHasBeenHit
double GetElementEfficiency(int element) const
vector< Float_t > fCerenkov_Detector_HitLocalPositionX
vector< Int_t > fRegion2_ChamberBack_WirePlane5_PackageID
unsigned int GetNextEvent()
Read the next event.
boost::mt19937 fRandomnessGenerator
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalMomentumZ
unsigned int GetSpecificEvent(const int eventnumber)
Read the specified event.
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalPositionZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalMomentumX
vector< Int_t > fCerenkov_PMT_PMTTotalNbOfHits
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_LocalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalMomentumY
double GetR2DriftTimeFromDistance(double dist) const
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalMomentumZ
Float_t fPrimary_OriginVertexThetaAngle
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalMomentumZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalPositionY
Int_t fRegion2_ChamberBack_WirePlane4_PlaneHasBeenHit
Float_t fPrimary_CrossSectionRadQE
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalPositionY
double GetR2DriftDistanceFromTime(double time) const
Int_t fRegion2_ChamberFront_WirePlane2_NbOfHits
Float_t fTriggerScintillator_Detector_HitLocalPositionY
double xGlobalToLocal(double x, double y, int octant) const
Get local coordinate from global coordinates and octant number.
double fY
Fractional energy loss .
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalMomentumY
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalPositionX
Int_t fRegion3_ChamberFront_WirePlaneU_HasBeenHit
void SetDriftDistance(const Double_t distance)
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalPositionZ
const QwGeometry fDetectorInfo
List of detector info objects (geometry information)
double xy2v(double x, double y)
Transform from [x,y] to v.
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalPositionX
double yGlobalToLocal(double x, double y, int octant) const
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalPositionY
void AssignCrossSection()
Assign the correct cross section pointer.
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneLocalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneLocalPositionY
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalPositionX
vector< Int_t > fRegion2_ChamberBack_WirePlane5_ParticleType
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalPositionX
Float_t fTriggerScintillator_Detector_HitGlobalPositionX
double fOriginVertexEnergy
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalMomentumX
Float_t fPrimary_CrossSectionRadTotal
A helper object for transformation between [u,v] and [x,y] frames.
double fPreScatteringEnergy
Converts between (u,v) and (x,y) coordinates.
void SetDetectorInfo(const QwDetectorInfo *detectorinfo)
Set the detector info pointer.
std::vector< float > fMD_LeftNbOfPEs
vector< Float_t > fRegion2_ChamberFront_WirePlane2_PlaneGlobalMomentumX
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalMomentumY
vector< Float_t > fRegion2_ChamberFront_WirePlane5_PlaneGlobalPositionX
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalPositionY
vector< Float_t > fCerenkov_Detector_HitLocalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalPositionZ
Int_t fRegion2_ChamberFront_WirePlane5_NbOfHits
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalMomentumY
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalPositionX
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalPositionX
vector< Int_t > fRegion2_ChamberBack_WirePlane3_PackageID
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalMomentumX
vector< Int_t > fRegion2_ChamberFront_WirePlane1_ParticleType
Int_t fTriggerScintillator_Detector_NbOfHits
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalMomentumX
static const double Mp
Mass of the proton.
#define REGION2_DETECTOR(chamber, plane, var)
double GetYPosition() const
QwHitContainer * GetHitContainer()
Get the list of hits as a hit container.
vector< Int_t > fRegion2_ChamberBack_WirePlane6_ParticleType
Int_t fRegion1_ChamberFront_WirePlane_NbOfHits
vector< Int_t > fRegion2_ChamberBack_WirePlane2_ParticleType
vector< Float_t > fRegion2_ChamberFront_WirePlane4_PlaneGlobalPositionY
Float_t * fCrossSection
Cross section flags.
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalPositionX
QwTreeEventBuffer(const QwGeometry &detector_info)
Constructor with file name and spectrometer geometry.
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalPositionY
double GetActiveWidthZ() const
static std::ostream & endl(std::ostream &)
End of the line.
Bool_t fRegion2_HasBeenHit
double GetElementSpacing() const
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneGlobalPositionY
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalPositionY
unsigned int CloseFile()
Close the event file.
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneGlobalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneGlobalMomentumX
vector< Int_t > fRegion2_ChamberFront_WirePlane4_ParticleType
std::vector< boost::shared_ptr< QwPartialTrack > > CreatePartialTracks(EQwRegionID region) const
Get the partial tracks.
Int_t fRegion2_ChamberBack_WirePlane2_PlaneHasBeenHit
#define REGION1_DETECTOR(chamber, var)
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneGlobalMomentumY
double pxGlobalToLocal(double px, double py, int octant) const
vector< Float_t > fCerenkov_PMT_PMTTotalNbOfPEs
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalMomentumZ
const std::string getenv_safe_string(const char *name)
vector< Int_t > fRegion2_ChamberFront_WirePlane6_PackageID
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalMomentumZ
Collection of QwDetectorInfo pointers that specifies an experimental geometry.
Int_t fRegion2_ChamberFront_WirePlane5_PlaneHasBeenHit
Bool_t fRegion1_HasBeenHit
Int_t fRegion2_ChamberBack_WirePlane6_NbOfHits
Float_t GetCrossSection()
Return the dereferenced cross section pointer.
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalMomentumZ
int fCurrentEntryNumber
Current entry number.
vector< Int_t > fTriggerScintillator_Detector_ParticleType
double fX
Bjorken-x scaling variable .
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalPositionY
Int_t fRegion2_ChamberBack_WirePlane5_NbOfHits
static std::vector< string > fAvailableCrossSections
vector< Float_t > fCerenkov_Detector_HitGlobalPositionZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_GlobalMomentumX
Float_t fPrimary_OriginVertexPositionX
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneGlobalMomentumX
Hit structure uniquely defining each hit.
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalMomentumX
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneGlobalMomentumY
std::pair< int, int > fEventRange
Requested event range.
Int_t fRegion2_ChamberFront_WirePlane2_PlaneHasBeenHit
vector< Float_t > fCerenkov_PMT_PMTRightNbOfPEs
Float_t fPrimary_CrossSectionRadTotalIntOnly
std::pair< int, int > fRunRange
Requested run range.
Int_t fRegion1_ChamberFront_WirePlane_PlaneHasBeenHit
#define REGION3_DETECTOR(chamber, plane, var)
double GetZPosition() const
double GetElementAngle() const
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_GlobalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane3_PlaneLocalPositionY
Int_t fRegion2_ChamberBack_WirePlane3_PlaneHasBeenHit
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneGlobalMomentumX
vector< Int_t > fRegion3_ChamberFront_WirePlaneV_ParticleType
static int fNumOfSimulated_TS_Tracks
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalMomentumY
Float_t fPrimary_OriginVertexMomentumDirectionY
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalMomentumX
Int_t fRegion2_ChamberBack_WirePlane6_PlaneHasBeenHit
double GetXPosition() const
vector< Float_t > fRegion2_ChamberBack_WirePlane2_PlaneLocalPositionZ
vector< Int_t > fRegion2_ChamberFront_WirePlane2_ParticleType
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_GlobalPositionX
void ClearVectors()
Clear the branch vectors.
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalMomentumX
void ProcessOptions(QwOptions &options)
Process command line and config file options.
double missing_drift_time
std::vector< QwHit > CreateHitCerenkov(const QwDetectorInfo *detectorinfo, const double x, const double y) const
Create a pair of hits for one track in the cerenkov or trigger scintillator.
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneLocalMomentumX
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalPositionX
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalMomentumZ
vector< Float_t > fRegion2_ChamberFront_WirePlane6_PlaneLocalMomentumZ
vector< Float_t > fRegion1_ChamberFront_WirePlane_PlaneLocalMomentumX
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalMomentumX
vector< Int_t > fRegion3_ChamberFront_WirePlaneU_PackageID
Float_t fPrimary_CrossSectionWeight
void Append(const QwHitContainer &mylist)
vector< Float_t > fCerenkov_Detector_HitGlobalPositionY
vector< Float_t > fRegion2_ChamberBack_WirePlane4_PlaneLocalMomentumZ
vector< Int_t > fRegion3_ChamberBack_WirePlaneV_PackageID
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalMomentumY
int GetNumberOfElements() const
vector< Float_t > fRegion2_ChamberBack_WirePlane5_PlaneLocalPositionZ
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneGlobalMomentumZ
Int_t fRegion2_ChamberBack_WirePlane2_NbOfHits
void SetEntriesPerEvent(const unsigned int n)
Set the number of entries per event.
vector< Int_t > fCerenkov_Detector_DetectorID
static int fNumOfSimulated_R3_PartialTracks
vector< Float_t > fRegion2_ChamberFront_WirePlane1_PlaneLocalPositionY
vector< Int_t > fRegion2_ChamberFront_WirePlane3_ParticleType
Contains the straight part of a track in one region only.
Float_t fPrimary_OriginVertexPositionY
vector< Int_t > fRegion2_ChamberFront_WirePlane5_PackageID
Int_t fRegion2_ChamberBack_WirePlane1_PlaneHasBeenHit
Float_t fPrimary_CrossSectionRadElasticPeak
Int_t fRegion3_ChamberBack_WirePlaneU_HasBeenHit
Int_t fRegion3_ChamberFront_WirePlaneU_NbOfHits
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneLocalMomentumY
Float_t fPrimary_CrossSectionBornQE
Int_t fRegion1_ChamberBack_WirePlane_NbOfHits
Float_t fPrimary_OriginVertexMomentumDirectionX
vector< Int_t > fRegion2_ChamberBack_WirePlane6_PackageID
vector< Float_t > fRegion1_ChamberBack_WirePlane_PlaneLocalMomentumZ
vector< Float_t > fRegion3_ChamberFront_WirePlaneU_LocalPositionZ
vector< Int_t > fRegion3_ChamberBack_WirePlaneV_ParticleType
static int fNumOfSimulated_R2_PartialTracks
vector< Float_t > fRegion2_ChamberFront_WirePlane3_PlaneLocalMomentumX
vector< Float_t > fRegion3_ChamberFront_WirePlaneV_LocalPositionZ
Float_t fTriggerScintillator_Detector_HitLocalExitPositionY
Float_t fPrimary_CrossSectionRadElastic
vector< Int_t > fRegion2_ChamberBack_WirePlane2_PackageID
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalPositionY
vector< Float_t > fRegion3_ChamberBack_WirePlaneV_LocalPositionY
Int_t fRegion2_ChamberFront_WirePlane3_PlaneHasBeenHit
Bool_t fCerenkov_HasBeenHit
vector< Int_t > fRegion2_ChamberBack_WirePlane1_PackageID
#define QwError
Predefined log drain for errors.
Float_t fPrimary_CrossSectionBornInelastic
Float_t fTriggerScintillator_Detector_HitLocalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane1_PlaneGlobalPositionX
vector< Float_t > fRegion3_ChamberBack_WirePlaneU_GlobalPositionZ
vector< Float_t > fRegion2_ChamberBack_WirePlane6_PlaneGlobalPositionX
static const double cm
Length units: base unit is mm.
double GetActiveWidthX() const
Int_t fRegion3_ChamberFront_WirePlaneV_HasBeenHit