All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
icarus::AnalysisTreeDataStruct Class Reference

Classes

class  BoxedArray
 A wrapper to a C array (needed to embed an array into a vector) More...
 
class  BranchCreator
 Little helper functor class to create or reset branches in a tree. More...
 
struct  SubRunData_t
 information from the subrun More...
 
class  TrackDataStruct
 

Public Types

enum  DataBits_t : unsigned int {
  tdAuxDet = 0x01, tdCry = 0x02, tdGenie = 0x04, tdGeant = 0x08,
  tdHit = 0x10, tdTrack = 0x20, tdVtx = 0x40, tdDefault = 0
}
 
template<typename T >
using AuxDetMCData_t = std::vector< BoxedArray< T[kMaxAuxDets]>>
 

Public Member Functions

bool hasAuxDetector () const
 Returns whether we have auxiliary detector data. More...
 
bool hasCryInfo () const
 Returns whether we have Cry data. More...
 
bool hasGenieInfo () const
 Returns whether we have Genie data. More...
 
bool hasHitInfo () const
 Returns whether we have Hit data. More...
 
bool hasTrackInfo () const
 Returns whether we have Track data. More...
 
bool hasVertexInfo () const
 Returns whether we have Vertex data. More...
 
bool hasGeantInfo () const
 Returns whether we have Geant data. More...
 
void SetBits (unsigned int setbits, bool unset=false)
 Sets the specified bits. More...
 
 AnalysisTreeDataStruct (size_t nTrackers=0)
 Constructor; clears all fields. More...
 
TrackDataStructGetTrackerData (size_t iTracker)
 
const TrackDataStructGetTrackerData (size_t iTracker) const
 
void ClearLocalData ()
 Clear all fields if this object (not the tracker algorithm data) More...
 
void Clear ()
 Clear all fields. More...
 
void SetTrackers (size_t nTrackers)
 Allocates data structures for the given number of trackers (no Clear()) More...
 
void ResizeMCNeutrino (int nNeutrinos)
 Resize the data structure for MCNeutrino particles. More...
 
void ResizeGEANT (int nParticles)
 Resize the data strutcure for GEANT particles. More...
 
void ResizeGenie (int nPrimaries)
 Resize the data strutcure for Genie primaries. More...
 
void ResizeCry (int nPrimaries)
 Resize the data strutcure for Cry primaries. More...
 
void SetAddresses (TTree *pTree, const std::vector< std::string > &trackers, bool isCosmics)
 Connect this object with a tree. More...
 
size_t GetNTrackers () const
 Returns the number of trackers for which data structures are allocated. More...
 
size_t GetMaxHits () const
 Returns the number of hits for which memory is allocated. More...
 
size_t GetMaxTrackers () const
 Returns the number of trackers for which memory is allocated. More...
 
size_t GetMaxGEANTparticles () const
 Returns the number of GEANT particles for which memory is allocated. More...
 
size_t GetMaxGeniePrimaries () const
 Returns the number of GENIE primaries for which memory is allocated. More...
 

Public Attributes

SubRunData_t SubRunData
 subrun data collected at begin of subrun More...
 
Int_t run
 
Int_t subrun
 
Int_t event
 
Double_t evttime
 
Double_t beamtime
 
Char_t isdata
 
Int_t no_hits
 
Short_t hit_tpc [kMaxHits]
 
Short_t hit_plane [kMaxHits]
 
Short_t hit_wire [kMaxHits]
 
Short_t hit_channel [kMaxHits]
 
Float_t hit_peakT [kMaxHits]
 
Float_t hit_charge [kMaxHits]
 
Float_t hit_ph [kMaxHits]
 
Float_t hit_startT [kMaxHits]
 
Float_t hit_endT [kMaxHits]
 
Float_t hit_nelec [kMaxHits]
 
Float_t hit_energy [kMaxHits]
 
Short_t hit_trkid [kMaxHits]
 
Short_t nvtx
 
Float_t vtx [kMaxVertices][3]
 
Char_t kNTracker
 
std::vector< TrackDataStructTrackData
 
size_t MaxMCNeutrinos
 
Int_t mcevts_truth
 ! The number of MCNeutrinos there is currently room for More...
 
std::vector< Int_t > nuID_truth
 
std::vector< Int_t > nuPDG_truth
 
std::vector< Int_t > ccnc_truth
 
std::vector< Int_t > mode_truth
 
std::vector< Float_t > enu_truth
 
std::vector< Float_t > Q2_truth
 
std::vector< Float_t > W_truth
 
std::vector< Int_t > hitnuc_truth
 
std::vector< Float_t > nuvtxx_truth
 
std::vector< Float_t > nuvtxy_truth
 
std::vector< Float_t > nuvtxz_truth
 
std::vector< Float_t > nu_dcosx_truth
 
std::vector< Float_t > nu_dcosy_truth
 
std::vector< Float_t > nu_dcosz_truth
 
std::vector< Float_t > lep_mom_truth
 
std::vector< Float_t > lep_dcosx_truth
 
std::vector< Float_t > lep_dcosy_truth
 
std::vector< Float_t > lep_dcosz_truth
 
std::vector< Float_t > tpx_flux
 
std::vector< Float_t > tpy_flux
 
std::vector< Float_t > tpz_flux
 
std::vector< Int_t > tptype_flux
 
size_t MaxGeniePrimaries = 0
 
Int_t genie_no_primaries
 
std::vector< Int_t > genie_primaries_pdg
 
std::vector< Float_t > genie_Eng
 
std::vector< Float_t > genie_Px
 
std::vector< Float_t > genie_Py
 
std::vector< Float_t > genie_Pz
 
std::vector< Float_t > genie_P
 
std::vector< Int_t > genie_status_code
 
std::vector< Float_t > genie_mass
 
std::vector< Int_t > genie_trackID
 
std::vector< Int_t > genie_ND
 
std::vector< Int_t > genie_mother
 
Int_t mcevts_truthcry
 
Int_t cry_no_primaries
 
std::vector< Int_t > cry_primaries_pdg
 
std::vector< Float_t > cry_Eng
 
std::vector< Float_t > cry_Px
 
std::vector< Float_t > cry_Py
 
std::vector< Float_t > cry_Pz
 
std::vector< Float_t > cry_P
 
std::vector< Float_t > cry_StartPointx
 
std::vector< Float_t > cry_StartPointy
 
std::vector< Float_t > cry_StartPointz
 
std::vector< Int_t > cry_status_code
 
std::vector< Float_t > cry_mass
 
std::vector< Int_t > cry_trackID
 
std::vector< Int_t > cry_ND
 
std::vector< Int_t > cry_mother
 
size_t MaxGEANTparticles = 0
 
Int_t no_primaries
 ! how many particles there is currently room for More...
 
Int_t geant_list_size
 
Int_t geant_list_size_in_tpcAV
 
std::vector< Int_t > pdg
 
std::vector< Int_t > status
 
std::vector< Float_t > Eng
 
std::vector< Float_t > EndE
 
std::vector< Float_t > Mass
 
std::vector< Float_t > Px
 
std::vector< Float_t > Py
 
std::vector< Float_t > Pz
 
std::vector< Float_t > P
 
std::vector< Float_t > StartPointx
 
std::vector< Float_t > StartPointy
 
std::vector< Float_t > StartPointz
 
std::vector< Float_t > StartT
 
std::vector< Float_t > EndT
 
std::vector< Float_t > EndPointx
 
std::vector< Float_t > EndPointy
 
std::vector< Float_t > EndPointz
 
std::vector< Float_t > theta
 
std::vector< Float_t > phi
 
std::vector< Float_t > theta_xz
 
std::vector< Float_t > theta_yz
 
std::vector< Float_t > pathlen
 
std::vector< Int_t > inTPCActive
 
std::vector< Float_t > StartPointx_tpcAV
 
std::vector< Float_t > StartPointy_tpcAV
 
std::vector< Float_t > StartPointz_tpcAV
 
std::vector< Float_t > EndPointx_tpcAV
 
std::vector< Float_t > EndPointy_tpcAV
 
std::vector< Float_t > EndPointz_tpcAV
 
std::vector< Int_t > NumberDaughters
 
std::vector< Int_t > TrackId
 
std::vector< Int_t > Mother
 
std::vector< Int_t > process_primary
 
std::vector< std::string > processname
 
std::vector< Int_t > MergedId
 
std::vector< Int_t > MotherNuId
 
std::vector< UShort_t > NAuxDets
 Number of AuxDets crossed by this particle. More...
 
AuxDetMCData_t< Short_t > AuxDetID
 Which AuxDet this particle went through. More...
 
AuxDetMCData_t< Float_t > entryX
 Entry X position of particle into AuxDet. More...
 
AuxDetMCData_t< Float_t > entryY
 Entry Y position of particle into AuxDet. More...
 
AuxDetMCData_t< Float_t > entryZ
 Entry Z position of particle into AuxDet. More...
 
AuxDetMCData_t< Float_t > entryT
 Entry T position of particle into AuxDet. More...
 
AuxDetMCData_t< Float_t > exitX
 Exit X position of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitY
 Exit Y position of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitZ
 Exit Z position of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitT
 Exit T position of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitPx
 Exit x momentum of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitPy
 Exit y momentum of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > exitPz
 Exit z momentum of particle out of AuxDet. More...
 
AuxDetMCData_t< Float_t > CombinedEnergyDep
 Sum energy of all particles with this trackID (+ID or -ID) in AuxDet. More...
 
unsigned int bits
 complementary information More...
 

Detailed Description

Data structure with all the tree information.

Can connect to a tree, clear its fields and resize its data.

Definition at line 161 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Member Typedef Documentation

template<typename T >
using icarus::AnalysisTreeDataStruct::AuxDetMCData_t = std::vector<BoxedArray<T[kMaxAuxDets]>>

Member Enumeration Documentation

Constructor & Destructor Documentation

icarus::AnalysisTreeDataStruct::AnalysisTreeDataStruct ( size_t  nTrackers = 0)
inline

Constructor; clears all fields.

Definition at line 531 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Member Function Documentation

void icarus::AnalysisTreeDataStruct::Clear ( )

Clear all fields.

Definition at line 1336 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1336  {
1337  ClearLocalData();
1338  std::for_each
1339  (TrackData.begin(), TrackData.end(), std::mem_fn(&TrackDataStruct::Clear));
1340 } // icarus::AnalysisTreeDataStruct::Clear()
void ClearLocalData()
Clear all fields if this object (not the tracker algorithm data)
void icarus::AnalysisTreeDataStruct::ClearLocalData ( )

Clear all fields if this object (not the tracker algorithm data)

Definition at line 1189 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1189  {
1190 
1191 // RunData.Clear();
1192  SubRunData.Clear();
1193 
1194  run = -99999;
1195  subrun = -99999;
1196  event = -99999;
1197  evttime = -99999;
1198  beamtime = -99999;
1199  isdata = -99;
1200  //taulife = -99999;
1201 
1202  no_hits = 0;
1203 
1204  std::fill(hit_tpc, hit_tpc + sizeof(hit_tpc)/sizeof(hit_tpc[0]), -9999);
1205  std::fill(hit_plane, hit_plane + sizeof(hit_plane)/sizeof(hit_plane[0]), -9999);
1206  std::fill(hit_wire, hit_wire + sizeof(hit_wire)/sizeof(hit_wire[0]), -9999);
1207  std::fill(hit_channel, hit_channel + sizeof(hit_channel)/sizeof(hit_channel[0]), -9999);
1208  std::fill(hit_peakT, hit_peakT + sizeof(hit_peakT)/sizeof(hit_peakT[0]), -99999.);
1209  std::fill(hit_charge, hit_charge + sizeof(hit_charge)/sizeof(hit_charge[0]), -99999.);
1210  std::fill(hit_ph, hit_ph + sizeof(hit_ph)/sizeof(hit_ph[0]), -99999.);
1211  std::fill(hit_startT, hit_startT + sizeof(hit_startT)/sizeof(hit_startT[0]), -99999.);
1212  std::fill(hit_endT, hit_endT + sizeof(hit_endT)/sizeof(hit_endT[0]), -99999.);
1213  std::fill(hit_trkid, hit_trkid + sizeof(hit_trkid)/sizeof(hit_trkid[0]), -9999);
1214  std::fill(hit_nelec, hit_nelec + sizeof(hit_nelec)/sizeof(hit_nelec[0]), -99999.);
1215  std::fill(hit_energy, hit_energy + sizeof(hit_energy)/sizeof(hit_energy[0]), -99999.);
1216 
1217  nvtx = 0;
1218  for (size_t ivtx = 0; ivtx < kMaxVertices; ++ivtx) {
1219  std::fill(vtx[ivtx], vtx[ivtx]+3, -99999.);
1220  }
1221 
1222  mcevts_truth = 0;
1223  mcevts_truthcry = -99999;
1224  FillWith(nuID_truth,-99999);
1225  FillWith(nuPDG_truth,-99999);
1226  FillWith(ccnc_truth,-99999);
1227  FillWith(mode_truth,-99999);
1228  FillWith(enu_truth,-99999);
1229  FillWith(Q2_truth,-99999);
1230  FillWith(W_truth,-99999);
1231  FillWith(hitnuc_truth,-99999);
1232  FillWith(nuvtxx_truth,-99999);
1233  FillWith(nuvtxy_truth,-99999);
1234  FillWith(nuvtxz_truth,-99999);
1235  FillWith(nu_dcosx_truth,-99999);
1236  FillWith(nu_dcosy_truth,-99999);
1237  FillWith(nu_dcosz_truth,-99999);
1238  FillWith(lep_mom_truth,-99999);
1239  FillWith(lep_dcosx_truth,-99999);
1240  FillWith(lep_dcosy_truth,-99999);
1241  FillWith(lep_dcosz_truth,-99999);
1242  FillWith(tpx_flux,-99999);
1243  FillWith(tpy_flux,-99999);
1244  FillWith(tpz_flux,-99999);
1245  FillWith(tptype_flux,-99999);
1246 
1247  genie_no_primaries = 0;
1248  cry_no_primaries = 0;
1249  no_primaries = 0;
1250  geant_list_size=0;
1252 
1253  FillWith(pdg, -99999);
1254  FillWith(status, -99999);
1255  FillWith(Mass, -99999.);
1256  FillWith(Eng, -99999.);
1257  FillWith(EndE, -99999.);
1258  FillWith(Px, -99999.);
1259  FillWith(Py, -99999.);
1260  FillWith(Pz, -99999.);
1261  FillWith(P, -99999.);
1262  FillWith(StartPointx, -99999.);
1263  FillWith(StartPointy, -99999.);
1264  FillWith(StartPointz, -99999.);
1265  FillWith(StartT, -99999.);
1266  FillWith(EndT, -99999.);
1267  FillWith(EndPointx, -99999.);
1268  FillWith(EndPointy, -99999.);
1269  FillWith(EndPointz, -99999.);
1270  FillWith(EndT, -99999.);
1271  FillWith(theta, -99999.);
1272  FillWith(phi, -99999.);
1273  FillWith(theta_xz, -99999.);
1274  FillWith(theta_yz, -99999.);
1275  FillWith(pathlen, -99999.);
1276  FillWith(inTPCActive, -99999);
1277  FillWith(StartPointx_tpcAV, -99999.);
1278  FillWith(StartPointy_tpcAV, -99999.);
1279  FillWith(StartPointz_tpcAV, -99999.);
1280  FillWith(EndPointx_tpcAV, -99999.);
1281  FillWith(EndPointy_tpcAV, -99999.);
1282  FillWith(EndPointz_tpcAV, -99999.);
1283  FillWith(NumberDaughters, -99999);
1284  FillWith(Mother, -99999);
1285  FillWith(TrackId, -99999);
1286  FillWith(process_primary, -99999);
1287  FillWith(processname, "noname");
1288  FillWith(MergedId, -99999);
1289  FillWith(MotherNuId, -99999);
1290  FillWith(genie_primaries_pdg, -99999);
1291  FillWith(genie_Eng, -99999.);
1292  FillWith(genie_Px, -99999.);
1293  FillWith(genie_Py, -99999.);
1294  FillWith(genie_Pz, -99999.);
1295  FillWith(genie_P, -99999.);
1296  FillWith(genie_status_code, -99999);
1297  FillWith(genie_mass, -99999.);
1298  FillWith(genie_trackID, -99999);
1299  FillWith(genie_ND, -99999);
1300  FillWith(genie_mother, -99999);
1301  FillWith(cry_primaries_pdg, -99999);
1302  FillWith(cry_Eng, -99999.);
1303  FillWith(cry_Px, -99999.);
1304  FillWith(cry_Py, -99999.);
1305  FillWith(cry_Pz, -99999.);
1306  FillWith(cry_P, -99999.);
1307  FillWith(cry_StartPointx, -99999.);
1308  FillWith(cry_StartPointy, -99999.);
1309  FillWith(cry_StartPointz, -99999.);
1310  FillWith(cry_status_code, -99999);
1311  FillWith(cry_mass, -99999.);
1312  FillWith(cry_trackID, -99999);
1313  FillWith(cry_ND, -99999);
1314  FillWith(cry_mother, -99999);
1315 
1316  // auxiliary detector information;
1317  FillWith(NAuxDets, 0);
1318  // - set to -9999 all the values of each of the arrays in AuxDetID;
1319  // this auto is BoxedArray<Short_t>
1320  for (auto& partInfo: AuxDetID) FillWith(partInfo, -9999);
1321  // - pythonish C++: as the previous line, for each one in a list of containers
1322  // of the same type (C++ is not python yet), using pointers to avoid copy;
1323  for (AuxDetMCData_t<Float_t>* cont: {
1324  &entryX, &entryY, &entryZ, &entryT,
1325  &exitX , &exitY , &exitZ, &exitT, &exitPx, &exitPy, &exitPz,
1327  })
1328  {
1329  // this auto is BoxedArray<Float_t>
1330  for (auto& partInfo: *cont) FillWith(partInfo, -99999.);
1331  } // for container
1332 
1333 } // icarus::AnalysisTreeDataStruct::ClearLocalData()
std::vector< UShort_t > NAuxDets
Number of AuxDets crossed by this particle.
SubRunData_t SubRunData
subrun data collected at begin of subrun
AuxDetMCData_t< Float_t > entryY
Entry Y position of particle into AuxDet.
constexpr unsigned short kMaxVertices
AuxDetMCData_t< Float_t > exitPz
Exit z momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryX
Entry X position of particle into AuxDet.
AuxDetMCData_t< Float_t > entryZ
Entry Z position of particle into AuxDet.
AuxDetMCData_t< Float_t > exitPx
Exit x momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryT
Entry T position of particle into AuxDet.
Int_t no_primaries
! how many particles there is currently room for
Int_t mcevts_truth
! The number of MCNeutrinos there is currently room for
AuxDetMCData_t< Float_t > exitT
Exit T position of particle out of AuxDet.
AuxDetMCData_t< Float_t > CombinedEnergyDep
Sum energy of all particles with this trackID (+ID or -ID) in AuxDet.
AuxDetMCData_t< Float_t > exitX
Exit X position of particle out of AuxDet.
void fill(const art::PtrVector< recob::Hit > &hits, int only_plane)
AuxDetMCData_t< Float_t > exitZ
Exit Z position of particle out of AuxDet.
AuxDetMCData_t< Float_t > exitY
Exit Y position of particle out of AuxDet.
AuxDetMCData_t< Short_t > AuxDetID
Which AuxDet this particle went through.
AuxDetMCData_t< Float_t > exitPy
Exit y momentum of particle out of AuxDet.
size_t icarus::AnalysisTreeDataStruct::GetMaxGEANTparticles ( ) const
inline

Returns the number of GEANT particles for which memory is allocated.

Definition at line 576 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

size_t icarus::AnalysisTreeDataStruct::GetMaxGeniePrimaries ( ) const
inline

Returns the number of GENIE primaries for which memory is allocated.

Definition at line 579 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

size_t icarus::AnalysisTreeDataStruct::GetMaxHits ( ) const
inline

Returns the number of hits for which memory is allocated.

Definition at line 570 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

570 { return kMaxHits; }
size_t icarus::AnalysisTreeDataStruct::GetMaxTrackers ( ) const
inline

Returns the number of trackers for which memory is allocated.

Definition at line 573 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

573 { return TrackData.capacity(); }
size_t icarus::AnalysisTreeDataStruct::GetNTrackers ( ) const
inline

Returns the number of trackers for which data structures are allocated.

Definition at line 567 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

567 { return TrackData.size(); }
TrackDataStruct& icarus::AnalysisTreeDataStruct::GetTrackerData ( size_t  iTracker)
inline

Definition at line 534 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

535  { return TrackData.at(iTracker); }
const TrackDataStruct& icarus::AnalysisTreeDataStruct::GetTrackerData ( size_t  iTracker) const
inline

Definition at line 536 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

537  { return TrackData.at(iTracker); }
bool icarus::AnalysisTreeDataStruct::hasAuxDetector ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasCryInfo ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasGeantInfo ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasGenieInfo ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasHitInfo ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasTrackInfo ( ) const
inline
bool icarus::AnalysisTreeDataStruct::hasVertexInfo ( ) const
inline
void icarus::AnalysisTreeDataStruct::ResizeCry ( int  nPrimaries)

Resize the data strutcure for Cry primaries.

Definition at line 1452 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1452  {
1453 
1454  cry_primaries_pdg.resize(nPrimaries);
1455  cry_Eng.resize(nPrimaries);
1456  cry_Px.resize(nPrimaries);
1457  cry_Py.resize(nPrimaries);
1458  cry_Pz.resize(nPrimaries);
1459  cry_P.resize(nPrimaries);
1460  cry_StartPointx.resize(nPrimaries);
1461  cry_StartPointy.resize(nPrimaries);
1462  cry_StartPointz.resize(nPrimaries);
1463  cry_status_code.resize(nPrimaries);
1464  cry_mass.resize(nPrimaries);
1465  cry_trackID.resize(nPrimaries);
1466  cry_ND.resize(nPrimaries);
1467  cry_mother.resize(nPrimaries);
1468 
1469 } // icarus::AnalysisTreeDataStruct::ResizeCry()
void icarus::AnalysisTreeDataStruct::ResizeGEANT ( int  nParticles)

Resize the data strutcure for GEANT particles.

Definition at line 1373 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1373  {
1374 
1375  // minimum size is 1, so that we always have an address
1376  MaxGEANTparticles = (size_t) std::max(nParticles, 1);
1377 
1378  pdg.resize(MaxGEANTparticles);
1379  status.resize(MaxGEANTparticles);
1380  Mass.resize(MaxGEANTparticles);
1381  Eng.resize(MaxGEANTparticles);
1382  EndE.resize(MaxGEANTparticles);
1383  Px.resize(MaxGEANTparticles);
1384  Py.resize(MaxGEANTparticles);
1385  Pz.resize(MaxGEANTparticles);
1386  P.resize(MaxGEANTparticles);
1390  StartT.resize(MaxGEANTparticles);
1391  EndT.resize(MaxGEANTparticles);
1392  EndPointx.resize(MaxGEANTparticles);
1393  EndPointy.resize(MaxGEANTparticles);
1394  EndPointz.resize(MaxGEANTparticles);
1395  EndT.resize(MaxGEANTparticles);
1396  theta.resize(MaxGEANTparticles);
1397  phi.resize(MaxGEANTparticles);
1398  theta_xz.resize(MaxGEANTparticles);
1399  theta_yz.resize(MaxGEANTparticles);
1400  pathlen.resize(MaxGEANTparticles);
1409  Mother.resize(MaxGEANTparticles);
1410  TrackId.resize(MaxGEANTparticles);
1413  MergedId.resize(MaxGEANTparticles);
1414  MotherNuId.resize(MaxGEANTparticles);
1415 
1416  // auxiliary detector structure
1417  NAuxDets.resize(MaxGEANTparticles);
1418  AuxDetID.resize(MaxGEANTparticles);
1419  entryX.resize(MaxGEANTparticles);
1420  entryY.resize(MaxGEANTparticles);
1421  entryZ.resize(MaxGEANTparticles);
1422  entryT.resize(MaxGEANTparticles);
1423  exitX.resize(MaxGEANTparticles);
1424  exitY.resize(MaxGEANTparticles);
1425  exitZ.resize(MaxGEANTparticles);
1426  exitT.resize(MaxGEANTparticles);
1427  exitPx.resize(MaxGEANTparticles);
1428  exitPy.resize(MaxGEANTparticles);
1429  exitPz.resize(MaxGEANTparticles);
1431 
1432 } // icarus::AnalysisTreeDataStruct::ResizeGEANT()
std::vector< UShort_t > NAuxDets
Number of AuxDets crossed by this particle.
AuxDetMCData_t< Float_t > entryY
Entry Y position of particle into AuxDet.
AuxDetMCData_t< Float_t > exitPz
Exit z momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryX
Entry X position of particle into AuxDet.
AuxDetMCData_t< Float_t > entryZ
Entry Z position of particle into AuxDet.
AuxDetMCData_t< Float_t > exitPx
Exit x momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryT
Entry T position of particle into AuxDet.
AuxDetMCData_t< Float_t > exitT
Exit T position of particle out of AuxDet.
AuxDetMCData_t< Float_t > CombinedEnergyDep
Sum energy of all particles with this trackID (+ID or -ID) in AuxDet.
AuxDetMCData_t< Float_t > exitX
Exit X position of particle out of AuxDet.
AuxDetMCData_t< Float_t > exitZ
Exit Z position of particle out of AuxDet.
AuxDetMCData_t< Float_t > exitY
Exit Y position of particle out of AuxDet.
AuxDetMCData_t< Short_t > AuxDetID
Which AuxDet this particle went through.
AuxDetMCData_t< Float_t > exitPy
Exit y momentum of particle out of AuxDet.
void icarus::AnalysisTreeDataStruct::ResizeGenie ( int  nPrimaries)

Resize the data strutcure for Genie primaries.

Definition at line 1434 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1434  {
1435 
1436  // minimum size is 1, so that we always have an address
1437  MaxGeniePrimaries = (size_t) std::max(nPrimaries, 1);
1439  genie_Eng.resize(MaxGeniePrimaries);
1440  genie_Px.resize(MaxGeniePrimaries);
1441  genie_Py.resize(MaxGeniePrimaries);
1442  genie_Pz.resize(MaxGeniePrimaries);
1443  genie_P.resize(MaxGeniePrimaries);
1445  genie_mass.resize(MaxGeniePrimaries);
1447  genie_ND.resize(MaxGeniePrimaries);
1449 
1450 } // icarus::AnalysisTreeDataStruct::ResizeGenie()
void icarus::AnalysisTreeDataStruct::ResizeMCNeutrino ( int  nNeutrinos)

Resize the data structure for MCNeutrino particles.

Definition at line 1342 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1342  {
1343 
1344  //min size is 1, to guarantee an address
1345  MaxMCNeutrinos = (size_t) std::max(nNeutrinos, 1);
1346  nuID_truth.resize(MaxMCNeutrinos);
1347  nuPDG_truth.resize(MaxMCNeutrinos);
1348  ccnc_truth.resize(MaxMCNeutrinos);
1349  mode_truth.resize(MaxMCNeutrinos);
1350  enu_truth.resize(MaxMCNeutrinos);
1351  Q2_truth.resize(MaxMCNeutrinos);
1352  W_truth.resize(MaxMCNeutrinos);
1353  hitnuc_truth.resize(MaxMCNeutrinos);
1354  nuvtxx_truth.resize(MaxMCNeutrinos);
1355  nuvtxy_truth.resize(MaxMCNeutrinos);
1356  nuvtxz_truth.resize(MaxMCNeutrinos);
1360  lep_mom_truth.resize(MaxMCNeutrinos);
1364  //Also resize the flux information here as it's a 1:1 with the MCNeutrino
1365  tpx_flux.resize(MaxMCNeutrinos);
1366  tpy_flux.resize(MaxMCNeutrinos);
1367  tpz_flux.resize(MaxMCNeutrinos);
1368  tptype_flux.resize(MaxMCNeutrinos);
1369 
1370  return;
1371 } // icarus::AnalysisTreeDataStruct::ResizeMCNeutrino()
void icarus::AnalysisTreeDataStruct::SetAddresses ( TTree *  pTree,
const std::vector< std::string > &  trackers,
bool  isCosmics 
)

Connect this object with a tree.

Definition at line 1471 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

1475  {
1476  BranchCreator CreateBranch(pTree);
1477 
1478  CreateBranch("run",&run,"run/I");
1479  CreateBranch("subrun",&subrun,"subrun/I");
1480  CreateBranch("event",&event,"event/I");
1481  CreateBranch("evttime",&evttime,"evttime/D");
1482  CreateBranch("beamtime",&beamtime,"beamtime/D");
1483  CreateBranch("pot",&SubRunData.pot,"pot/D");
1484  CreateBranch("isdata",&isdata,"isdata/B");
1485  //CreateBranch("taulife",&taulife,"taulife/D");
1486 
1487  if (hasHitInfo()){
1488  CreateBranch("no_hits",&no_hits,"no_hits/I");
1489  CreateBranch("hit_tpc",hit_tpc,"hit_tpc[no_hits]/S");
1490  CreateBranch("hit_plane",hit_plane,"hit_plane[no_hits]/S");
1491  CreateBranch("hit_wire",hit_wire,"hit_wire[no_hits]/S");
1492  CreateBranch("hit_channel",hit_channel,"hit_channel[no_hits]/S");
1493  CreateBranch("hit_peakT",hit_peakT,"hit_peakT[no_hits]/F");
1494  CreateBranch("hit_charge",hit_charge,"hit_charge[no_hits]/F");
1495  CreateBranch("hit_ph",hit_ph,"hit_ph[no_hits]/F");
1496  CreateBranch("hit_startT",hit_startT,"hit_startT[no_hits]/F");
1497  CreateBranch("hit_endT",hit_endT,"hit_endT[no_hits]/F");
1498  CreateBranch("hit_trkid",hit_trkid,"hit_trkid[no_hits]/S");
1499  CreateBranch("hit_nelec",hit_nelec,"hit_nelec[no_hits]/F");
1500  CreateBranch("hit_energy",hit_energy,"hit_energy[no_hits]/F");
1501  }
1502 
1503  if (hasVertexInfo()){
1504  CreateBranch("nvtx",&nvtx,"nvtx/S");
1505  CreateBranch("vtx",vtx,"vtx[nvtx][3]/F");
1506  }
1507 
1508  if (hasTrackInfo()){
1509  AutoResettingStringSteam sstr;
1510  sstr() << kMaxTrackHits;
1511  std::string MaxTrackHitsIndexStr("[" + sstr.str() + "]");
1512 
1513  kNTracker = trackers.size();
1514  CreateBranch("kNTracker",&kNTracker,"kNTracker/B");
1515  for(int i=0; i<kNTracker; i++){
1516  std::string TrackLabel = trackers[i];
1517  std::string BranchName;
1518 
1519  // note that if the tracker data has maximum number of tracks 0,
1520  // nothing is initialized (branches are not even created)
1521  TrackData[i].SetAddresses(pTree, TrackLabel, isCosmics);
1522  } // for trackers
1523  }
1524 
1525  if (hasGenieInfo()){
1526  CreateBranch("mcevts_truth",&mcevts_truth,"mcevts_truth/I");
1527  CreateBranch("nuID_truth",nuID_truth,"nuID_truth[mcevts_truth]/I");
1528  CreateBranch("nuPDG_truth",nuPDG_truth,"nuPDG_truth[mcevts_truth]/I");
1529  CreateBranch("ccnc_truth",ccnc_truth,"ccnc_truth[mcevts_truth]/I");
1530  CreateBranch("mode_truth",mode_truth,"mode_truth[mcevts_truth]/I");
1531  CreateBranch("enu_truth",enu_truth,"enu_truth[mcevts_truth]/F");
1532  CreateBranch("Q2_truth",Q2_truth,"Q2_truth[mcevts_truth]/F");
1533  CreateBranch("W_truth",W_truth,"W_truth[mcevts_truth]/F");
1534  CreateBranch("hitnuc_truth",hitnuc_truth,"hitnuc_truth[mcevts_truth]/I");
1535  CreateBranch("nuvtxx_truth",nuvtxx_truth,"nuvtxx_truth[mcevts_truth]/F");
1536  CreateBranch("nuvtxy_truth",nuvtxy_truth,"nuvtxy_truth[mcevts_truth]/F");
1537  CreateBranch("nuvtxz_truth",nuvtxz_truth,"nuvtxz_truth[mcevts_truth]/F");
1538  CreateBranch("nu_dcosx_truth",nu_dcosx_truth,"nu_dcosx_truth[mcevts_truth]/F");
1539  CreateBranch("nu_dcosy_truth",nu_dcosy_truth,"nu_dcosy_truth[mcevts_truth]/F");
1540  CreateBranch("nu_dcosz_truth",nu_dcosz_truth,"nu_dcosz_truth[mcevts_truth]/F");
1541  CreateBranch("lep_mom_truth",lep_mom_truth,"lep_mom_truth[mcevts_truth]/F");
1542  CreateBranch("lep_dcosx_truth",lep_dcosx_truth,"lep_dcosx_truth[mcevts_truth]/F");
1543  CreateBranch("lep_dcosy_truth",lep_dcosy_truth,"lep_dcosy_truth[mcevts_truth]/F");
1544  CreateBranch("lep_dcosz_truth",lep_dcosz_truth,"lep_dcosz_truth[mcevts_truth]/F");
1545 
1546  CreateBranch("tpx_flux",tpx_flux,"tpx_flux[mcevts_truth]/F");
1547  CreateBranch("tpy_flux",tpy_flux,"tpy_flux[mcevts_truth]/F");
1548  CreateBranch("tpz_flux",tpz_flux,"tpz_flux[mcevts_truth]/F");
1549  CreateBranch("tptype_flux",tptype_flux,"tptype_flux[mcevts_truth]/I");
1550 
1551  CreateBranch("genie_no_primaries",&genie_no_primaries,"genie_no_primaries/I");
1552  CreateBranch("genie_primaries_pdg",genie_primaries_pdg,"genie_primaries_pdg[genie_no_primaries]/I");
1553  CreateBranch("genie_Eng",genie_Eng,"genie_Eng[genie_no_primaries]/F");
1554  CreateBranch("genie_Px",genie_Px,"genie_Px[genie_no_primaries]/F");
1555  CreateBranch("genie_Py",genie_Py,"genie_Py[genie_no_primaries]/F");
1556  CreateBranch("genie_Pz",genie_Pz,"genie_Pz[genie_no_primaries]/F");
1557  CreateBranch("genie_P",genie_P,"genie_P[genie_no_primaries]/F");
1558  CreateBranch("genie_status_code",genie_status_code,"genie_status_code[genie_no_primaries]/I");
1559  CreateBranch("genie_mass",genie_mass,"genie_mass[genie_no_primaries]/F");
1560  CreateBranch("genie_trackID",genie_trackID,"genie_trackID[genie_no_primaries]/I");
1561  CreateBranch("genie_ND",genie_ND,"genie_ND[genie_no_primaries]/I");
1562  CreateBranch("genie_mother",genie_mother,"genie_mother[genie_no_primaries]/I");
1563  }
1564 
1565  if (hasCryInfo()){
1566  CreateBranch("mcevts_truthcry",&mcevts_truthcry,"mcevts_truthcry/I");
1567  CreateBranch("cry_no_primaries",&cry_no_primaries,"cry_no_primaries/I");
1568  CreateBranch("cry_primaries_pdg",cry_primaries_pdg,"cry_primaries_pdg[cry_no_primaries]/I");
1569  CreateBranch("cry_Eng",cry_Eng,"cry_Eng[cry_no_primaries]/F");
1570  CreateBranch("cry_Px",cry_Px,"cry_Px[cry_no_primaries]/F");
1571  CreateBranch("cry_Py",cry_Py,"cry_Py[cry_no_primaries]/F");
1572  CreateBranch("cry_Pz",cry_Pz,"cry_Pz[cry_no_primaries]/F");
1573  CreateBranch("cry_P",cry_P,"cry_P[cry_no_primaries]/F");
1574  CreateBranch("cry_StartPointx",cry_StartPointx,"cry_StartPointx[cry_no_primaries]/F");
1575  CreateBranch("cry_StartPointy",cry_StartPointy,"cry_StartPointy[cry_no_primaries]/F");
1576  CreateBranch("cry_StartPointz",cry_StartPointz,"cry_StartPointz[cry_no_primaries]/F");
1577  CreateBranch("cry_status_code",cry_status_code,"cry_status_code[cry_no_primaries]/I");
1578  CreateBranch("cry_mass",cry_mass,"cry_mass[cry_no_primaries]/F");
1579  CreateBranch("cry_trackID",cry_trackID,"cry_trackID[cry_no_primaries]/I");
1580  CreateBranch("cry_ND",cry_ND,"cry_ND[cry_no_primaries]/I");
1581  CreateBranch("cry_mother",cry_mother,"cry_mother[cry_no_primaries]/I");
1582  }
1583 
1584  if (hasGeantInfo()){
1585  CreateBranch("no_primaries",&no_primaries,"no_primaries/I");
1586  CreateBranch("geant_list_size",&geant_list_size,"geant_list_size/I");
1587  CreateBranch("geant_list_size_in_tpcAV",&geant_list_size_in_tpcAV,"geant_list_size_in_tpcAV/I");
1588  CreateBranch("pdg",pdg,"pdg[geant_list_size]/I");
1589  CreateBranch("status",status,"status[geant_list_size]/I");
1590  CreateBranch("Mass",Mass,"Mass[geant_list_size]/F");
1591  CreateBranch("Eng",Eng,"Eng[geant_list_size]/F");
1592  CreateBranch("EndE",EndE,"EndE[geant_list_size]/F");
1593  CreateBranch("Px",Px,"Px[geant_list_size]/F");
1594  CreateBranch("Py",Py,"Py[geant_list_size]/F");
1595  CreateBranch("Pz",Pz,"Pz[geant_list_size]/F");
1596  CreateBranch("P",P,"P[geant_list_size]/F");
1597  CreateBranch("StartPointx",StartPointx,"StartPointx[geant_list_size]/F");
1598  CreateBranch("StartPointy",StartPointy,"StartPointy[geant_list_size]/F");
1599  CreateBranch("StartPointz",StartPointz,"StartPointz[geant_list_size]/F");
1600  CreateBranch("StartT",StartT,"StartT[geant_list_size]/F");
1601  CreateBranch("EndPointx",EndPointx,"EndPointx[geant_list_size]/F");
1602  CreateBranch("EndPointy",EndPointy,"EndPointy[geant_list_size]/F");
1603  CreateBranch("EndPointz",EndPointz,"EndPointz[geant_list_size]/F");
1604  CreateBranch("EndT",EndT,"EndT[geant_list_size]/F");
1605  CreateBranch("theta",theta,"theta[geant_list_size]/F");
1606  CreateBranch("phi",phi,"phi[geant_list_size]/F");
1607  CreateBranch("theta_xz",theta_xz,"theta_xz[geant_list_size]/F");
1608  CreateBranch("theta_yz",theta_yz,"theta_yz[geant_list_size]/F");
1609  CreateBranch("pathlen",pathlen,"pathlen[geant_list_size]/F");
1610  CreateBranch("inTPCActive",inTPCActive,"inTPCActive[geant_list_size]/I");
1611  CreateBranch("StartPointx_tpcAV",StartPointx_tpcAV,"StartPointx_tpcAV[geant_list_size]/F");
1612  CreateBranch("StartPointy_tpcAV",StartPointy_tpcAV,"StartPointy_tpcAV[geant_list_size]/F");
1613  CreateBranch("StartPointz_tpcAV",StartPointz_tpcAV,"StartPointz_tpcAV[geant_list_size]/F");
1614  CreateBranch("EndPointx_tpcAV",EndPointx_tpcAV,"EndPointx_tpcAV[geant_list_size]/F");
1615  CreateBranch("EndPointy_tpcAV",EndPointy_tpcAV,"EndPointy_tpcAV[geant_list_size]/F");
1616  CreateBranch("EndPointz_tpcAV",EndPointz_tpcAV,"EndPointz_tpcAV[geant_list_size]/F");
1617  CreateBranch("NumberDaughters",NumberDaughters,"NumberDaughters[geant_list_size]/I");
1618  CreateBranch("Mother",Mother,"Mother[geant_list_size]/I");
1619  CreateBranch("TrackId",TrackId,"TrackId[geant_list_size]/I");
1620  CreateBranch("MergedId", MergedId, "MergedId[geant_list_size]/I");
1621  CreateBranch("MotherNuId", MotherNuId, "MotherNuId[geant_list_size]/I");
1622  CreateBranch("process_primary",process_primary,"process_primary[geant_list_size]/I");
1623  CreateBranch("processname", processname);
1624  }
1625 
1626  if (hasAuxDetector()) {
1627  // Geant information is required to fill aux detector information.
1628  // if fSaveGeantInfo is not set to true, show an error message and quit!
1629  if (!hasGeantInfo()){
1630  throw art::Exception(art::errors::Configuration)
1631  << "Saving Auxiliary detector information requies saving GEANT information, "
1632  <<"please set fSaveGeantInfo flag to true in your fhicl file and rerun.\n";
1633  }
1634  std::ostringstream sstr;
1635  sstr << "[" << kMaxAuxDets << "]";
1636  std::string MaxAuxDetIndexStr = sstr.str();
1637  CreateBranch("NAuxDets", NAuxDets, "NAuxDets[geant_list_size]/s");
1638  CreateBranch("AuxDetID", AuxDetID, "AuxDetID[geant_list_size]" + MaxAuxDetIndexStr + "/S");
1639  CreateBranch("AuxDetEntryX", entryX, "AuxDetEntryX[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1640  CreateBranch("AuxDetEntryY", entryY, "AuxDetEntryY[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1641  CreateBranch("AuxDetEntryZ", entryZ, "AuxDetEntryZ[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1642  CreateBranch("AuxDetEntryT", entryT, "AuxDetEntryT[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1643  CreateBranch("AuxDetExitX", exitX, "AuxDetExitX[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1644  CreateBranch("AuxDetExitY", exitY, "AuxDetExitY[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1645  CreateBranch("AuxDetExitZ", exitZ, "AuxDetExitZ[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1646  CreateBranch("AuxDetExitT", exitT, "AuxDetExitT[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1647  CreateBranch("AuxDetExitPx", exitPx, "AuxDetExitPx[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1648  CreateBranch("AuxDetExitPy", exitPy, "AuxDetExitPy[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1649  CreateBranch("AuxDetExitPz", exitPz, "AuxDetExitPz[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1650  CreateBranch("CombinedEnergyDep", CombinedEnergyDep,
1651  "CombinedEnergyDep[geant_list_size]" + MaxAuxDetIndexStr + "/F");
1652  } // if hasAuxDetector
1653 
1654 } // icarus::AnalysisTreeDataStruct::SetAddresses()
bool hasHitInfo() const
Returns whether we have Hit data.
std::vector< UShort_t > NAuxDets
Number of AuxDets crossed by this particle.
SubRunData_t SubRunData
subrun data collected at begin of subrun
bool hasAuxDetector() const
Returns whether we have auxiliary detector data.
AuxDetMCData_t< Float_t > entryY
Entry Y position of particle into AuxDet.
AuxDetMCData_t< Float_t > exitPz
Exit z momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryX
Entry X position of particle into AuxDet.
isCosmics(false)
AuxDetMCData_t< Float_t > entryZ
Entry Z position of particle into AuxDet.
bool hasGeantInfo() const
Returns whether we have Geant data.
AuxDetMCData_t< Float_t > exitPx
Exit x momentum of particle out of AuxDet.
AuxDetMCData_t< Float_t > entryT
Entry T position of particle into AuxDet.
Int_t no_primaries
! how many particles there is currently room for
Int_t mcevts_truth
! The number of MCNeutrinos there is currently room for
AuxDetMCData_t< Float_t > exitT
Exit T position of particle out of AuxDet.
bool hasVertexInfo() const
Returns whether we have Vertex data.
AuxDetMCData_t< Float_t > CombinedEnergyDep
Sum energy of all particles with this trackID (+ID or -ID) in AuxDet.
AuxDetMCData_t< Float_t > exitX
Exit X position of particle out of AuxDet.
bool hasCryInfo() const
Returns whether we have Cry data.
bool hasGenieInfo() const
Returns whether we have Genie data.
AuxDetMCData_t< Float_t > exitZ
Exit Z position of particle out of AuxDet.
bool hasTrackInfo() const
Returns whether we have Track data.
AuxDetMCData_t< Float_t > exitY
Exit Y position of particle out of AuxDet.
AuxDetMCData_t< Short_t > AuxDetID
Which AuxDet this particle went through.
AuxDetMCData_t< Float_t > exitPy
Exit y momentum of particle out of AuxDet.
constexpr unsigned short kMaxAuxDets
max number of auxiliary detector cells per MC particle
void icarus::AnalysisTreeDataStruct::SetBits ( unsigned int  setbits,
bool  unset = false 
)
inline

Sets the specified bits.

Definition at line 527 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

528  { if (unset) bits &= ~setbits; else bits |= setbits; }
void icarus::AnalysisTreeDataStruct::SetTrackers ( size_t  nTrackers)
inline

Allocates data structures for the given number of trackers (no Clear())

Definition at line 548 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

548 { TrackData.resize(nTrackers); }

Member Data Documentation

AuxDetMCData_t<Short_t> icarus::AnalysisTreeDataStruct::AuxDetID

Which AuxDet this particle went through.

Definition at line 489 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Double_t icarus::AnalysisTreeDataStruct::beamtime
unsigned int icarus::AnalysisTreeDataStruct::bits

complementary information

Definition at line 503 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

std::vector<Int_t> icarus::AnalysisTreeDataStruct::ccnc_truth
AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::CombinedEnergyDep

Sum energy of all particles with this trackID (+ID or -ID) in AuxDet.

Definition at line 501 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_Eng
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_mass
std::vector<Int_t> icarus::AnalysisTreeDataStruct::cry_mother
std::vector<Int_t> icarus::AnalysisTreeDataStruct::cry_ND
Int_t icarus::AnalysisTreeDataStruct::cry_no_primaries
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_P
std::vector<Int_t> icarus::AnalysisTreeDataStruct::cry_primaries_pdg
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_Px
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_Py
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_Pz
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_StartPointx
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_StartPointy
std::vector<Float_t> icarus::AnalysisTreeDataStruct::cry_StartPointz
std::vector<Int_t> icarus::AnalysisTreeDataStruct::cry_status_code
std::vector<Int_t> icarus::AnalysisTreeDataStruct::cry_trackID
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndE
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointx
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointx_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointy
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointy_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointz
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndPointz_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::EndT
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Eng
AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::entryT

Entry T position of particle into AuxDet.

Definition at line 493 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::entryX

Entry X position of particle into AuxDet.

Definition at line 490 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::entryY

Entry Y position of particle into AuxDet.

Definition at line 491 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::entryZ

Entry Z position of particle into AuxDet.

Definition at line 492 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

std::vector<Float_t> icarus::AnalysisTreeDataStruct::enu_truth
Int_t icarus::AnalysisTreeDataStruct::event
Double_t icarus::AnalysisTreeDataStruct::evttime
AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitPx

Exit x momentum of particle out of AuxDet.

Definition at line 498 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitPy

Exit y momentum of particle out of AuxDet.

Definition at line 499 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitPz

Exit z momentum of particle out of AuxDet.

Definition at line 500 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitT

Exit T position of particle out of AuxDet.

Definition at line 497 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitX

Exit X position of particle out of AuxDet.

Definition at line 494 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitY

Exit Y position of particle out of AuxDet.

Definition at line 495 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

AuxDetMCData_t<Float_t> icarus::AnalysisTreeDataStruct::exitZ

Exit Z position of particle out of AuxDet.

Definition at line 496 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Int_t icarus::AnalysisTreeDataStruct::geant_list_size
Int_t icarus::AnalysisTreeDataStruct::geant_list_size_in_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_Eng
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_mass
std::vector<Int_t> icarus::AnalysisTreeDataStruct::genie_mother
std::vector<Int_t> icarus::AnalysisTreeDataStruct::genie_ND
Int_t icarus::AnalysisTreeDataStruct::genie_no_primaries
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_P
std::vector<Int_t> icarus::AnalysisTreeDataStruct::genie_primaries_pdg
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_Px
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_Py
std::vector<Float_t> icarus::AnalysisTreeDataStruct::genie_Pz
std::vector<Int_t> icarus::AnalysisTreeDataStruct::genie_status_code
std::vector<Int_t> icarus::AnalysisTreeDataStruct::genie_trackID
Short_t icarus::AnalysisTreeDataStruct::hit_channel[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_charge[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_endT[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_energy[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_nelec[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_peakT[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_ph[kMaxHits]
Short_t icarus::AnalysisTreeDataStruct::hit_plane[kMaxHits]
Float_t icarus::AnalysisTreeDataStruct::hit_startT[kMaxHits]
Short_t icarus::AnalysisTreeDataStruct::hit_tpc[kMaxHits]
Short_t icarus::AnalysisTreeDataStruct::hit_trkid[kMaxHits]
Short_t icarus::AnalysisTreeDataStruct::hit_wire[kMaxHits]
std::vector<Int_t> icarus::AnalysisTreeDataStruct::hitnuc_truth
std::vector<Int_t> icarus::AnalysisTreeDataStruct::inTPCActive
Char_t icarus::AnalysisTreeDataStruct::isdata
Char_t icarus::AnalysisTreeDataStruct::kNTracker
std::vector<Float_t> icarus::AnalysisTreeDataStruct::lep_dcosx_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::lep_dcosy_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::lep_dcosz_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::lep_mom_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Mass
size_t icarus::AnalysisTreeDataStruct::MaxGEANTparticles = 0
size_t icarus::AnalysisTreeDataStruct::MaxGeniePrimaries = 0
size_t icarus::AnalysisTreeDataStruct::MaxMCNeutrinos
Int_t icarus::AnalysisTreeDataStruct::mcevts_truth

! The number of MCNeutrinos there is currently room for

Definition at line 380 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Int_t icarus::AnalysisTreeDataStruct::mcevts_truthcry
std::vector<Int_t> icarus::AnalysisTreeDataStruct::MergedId
std::vector<Int_t> icarus::AnalysisTreeDataStruct::mode_truth
std::vector<Int_t> icarus::AnalysisTreeDataStruct::Mother
std::vector<Int_t> icarus::AnalysisTreeDataStruct::MotherNuId
std::vector<UShort_t> icarus::AnalysisTreeDataStruct::NAuxDets

Number of AuxDets crossed by this particle.

Definition at line 488 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

Int_t icarus::AnalysisTreeDataStruct::no_hits
Int_t icarus::AnalysisTreeDataStruct::no_primaries

! how many particles there is currently room for

Definition at line 441 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

std::vector<Float_t> icarus::AnalysisTreeDataStruct::nu_dcosx_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::nu_dcosy_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::nu_dcosz_truth
std::vector<Int_t> icarus::AnalysisTreeDataStruct::nuID_truth
std::vector<Int_t> icarus::AnalysisTreeDataStruct::NumberDaughters
std::vector<Int_t> icarus::AnalysisTreeDataStruct::nuPDG_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::nuvtxx_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::nuvtxy_truth
std::vector<Float_t> icarus::AnalysisTreeDataStruct::nuvtxz_truth
Short_t icarus::AnalysisTreeDataStruct::nvtx
std::vector<Float_t> icarus::AnalysisTreeDataStruct::P
std::vector<Float_t> icarus::AnalysisTreeDataStruct::pathlen
std::vector<Int_t> icarus::AnalysisTreeDataStruct::pdg
std::vector<Float_t> icarus::AnalysisTreeDataStruct::phi
std::vector<Int_t> icarus::AnalysisTreeDataStruct::process_primary
std::vector<std::string> icarus::AnalysisTreeDataStruct::processname
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Px
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Py
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Pz
std::vector<Float_t> icarus::AnalysisTreeDataStruct::Q2_truth
Int_t icarus::AnalysisTreeDataStruct::run
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointx
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointx_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointy
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointy_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointz
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartPointz_tpcAV
std::vector<Float_t> icarus::AnalysisTreeDataStruct::StartT
std::vector<Int_t> icarus::AnalysisTreeDataStruct::status
Int_t icarus::AnalysisTreeDataStruct::subrun
SubRunData_t icarus::AnalysisTreeDataStruct::SubRunData

subrun data collected at begin of subrun

Definition at line 343 of file icaruscode/icaruscode/Analysis/AnalysisTree_module.cc.

std::vector<Float_t> icarus::AnalysisTreeDataStruct::theta
std::vector<Float_t> icarus::AnalysisTreeDataStruct::theta_xz
std::vector<Float_t> icarus::AnalysisTreeDataStruct::theta_yz
std::vector<Int_t> icarus::AnalysisTreeDataStruct::tptype_flux
std::vector<Float_t> icarus::AnalysisTreeDataStruct::tpx_flux
std::vector<Float_t> icarus::AnalysisTreeDataStruct::tpy_flux
std::vector<Float_t> icarus::AnalysisTreeDataStruct::tpz_flux
std::vector<TrackDataStruct> icarus::AnalysisTreeDataStruct::TrackData
std::vector<Int_t> icarus::AnalysisTreeDataStruct::TrackId
Float_t icarus::AnalysisTreeDataStruct::vtx[kMaxVertices][3]
std::vector<Float_t> icarus::AnalysisTreeDataStruct::W_truth

The documentation for this class was generated from the following file: