You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/branches.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -112,10 +112,13 @@ Calorimeter hits store crystal position in (x,y,z) with frame origin at tracker
112
112
The calorimeter MC branches provide MC-truth information at different levels of the calorimeter reconstruction hierarchy.
113
113
114
114
**Alignment with Reconstruction Branches:**
115
-
MC information branches are aligned with their corresponding reco branches:
115
+
Most calorimeter MC branches are index-aligned with their reco counterparts (same size and element index). One important exception:
116
+
117
+
> **Warning — `calohitsmc` is not aligned with `calohits`.** Reco hits come from `CaloHitMaker`; MC hits come from `compressRecoMCs`, which repacks `CaloHitMC` objects when copying cluster MC truth. The two branches can differ in size and order. Offline pairs reco and MC hits via `CaloHitMCTruthAssn` at reconstruction time, but that association is not kept in production art files read by EventNtuple. Each `calohitsmc` element therefore carries `caloHitIdx_` (index into `calohits`, or `-1`). RooUtil resolves MC hits through `caloHitIdx_`; do **not** assume `calohitsmc[i]` corresponds to `calohits[i]`.
118
+
116
119
-`caloclustersmc` ← aligned with `caloclusters` (same size & indices)
117
-
-`calohitsmc` ← aligned with `calohits` (same size & indices)
118
-
-`calodigismc` ← aligned with `calodigis` (same size & indices; raw digi MC truth) (also: `calorecodigis` too)
120
+
-`calohitsmc` ← **not** index-aligned with `calohits` (see warning above); use `caloHitIdx_` to find the reco hit
121
+
-`calodigismc` ← aligned with `calodigis`when both branches are filled (same size & indices; raw digi MC truth)
119
122
-`calodigisim` ← unique SimParticles from raw digis
120
123
-`calomcsim` ← unique SimParticles from MC clusters
121
124
@@ -124,7 +127,7 @@ Each MC element contains `simParticleIds` to index into the corresponding `*mcsi
| caloclustersmc | Vector branch | MC-truth information for calorimeter clusters (aligned with caloclusters)| `nsim` (# of sim particles), `etot` (total true energy), `tavg` (avg time), `eprimary` (primary particle energy), `tprimary` (primary time), `simParticleIds`, `simRels` (MCRelationship), `hits_`, `prel` (primary to event primary relationship) | [see CaloClusterInfoMC.hh](../inc/CaloClusterInfoMC.hh)
127
-
| calohitsmc | Vector branch | MC-truth information for calorimeter hits (aligned with calohits)| `nsim`, `eDep`, `eDepG4`, `eprimary`, `tprimary`, `eDeps`, `tDeps`, `momentumIns`, `simParticleIds`, `simRels`, `caloClusterIdx_`, etc. | [see CaloHitInfoMC.hh](../inc/CaloHitInfoMC.hh)
130
+
| calohitsmc | Vector branch | MC-truth for calorimeter hits (**not** index-aligned with `calohits`; use `caloHitIdx_`)| `nsim`, `eDep`, `eDepG4`, `eprimary`, `tprimary`, `eDeps`, `tDeps`, `momentumIns`, `simParticleIds`, `simRels`, `clusterIdx_`, `caloHitIdx_`, etc. | [see CaloHitInfoMC.hh](../inc/CaloHitInfoMC.hh)
128
131
| calodigismc | Vector branch | MC-truth information for raw calorimeter digis (aligned with calodigis)| `nsim`, `eDep`, `eDepG4`, `eprimary`, `tprimary`, `eDeps`, `tDeps`, `momentumIns`, `simParticleIds`, `simRels`, `caloHitIdx_`, `crystalID_`, `diskID_`, `energyCorr_`, `timeCorr_`, `posX_`, `posY_` | [see CaloDigiMCInfo.hh](../inc/CaloDigiMCInfo.hh)
129
132
| calodigisim | Vector branch | unique SimParticles in all raw digis (genealogy information)| SimParticle genealogy info | [see SimInfo.hh](../inc/SimInfo.hh)
130
133
| calomcsim | Vector branch | unique SimParticles in all MC clusters (genealogy information)| SimParticle genealogy info | [see SimInfo.hh](../inc/SimInfo.hh)
@@ -140,6 +143,8 @@ The branch is empty if there are no CRV hit during the event.
140
143
| crvcoincs | Vector branch | information about a cluster of CRV coincidence triplets| [see CrvHitInfoReco.hh](../inc/CrvHitInfoReco.hh)
141
144
| crvcoincsmc | Vector branch | information about the MC track which most likely caused the CRV coincidence triplets| [see CrvHitInfoMC.hh](../inc/CrvHitInfoMC.hh)
142
145
| crvcoincsmcplane | Vector branch | information about the point where the MC trajectory crosses the xz plane of CRV-T| [see CrvPlaneInfoMC.hh](../inc/CrvPlaneInfoMC.hh)
146
+
| crvpulses | Vector branch | information about CRV reco pulses, including ROC/FEB/FEB channel IDs. `crvHitIndex` gives the index in `crvcoincs`, or -1 if the pulse was not clustered into a CRV hit| [see CrvPulseInfoReco.hh](../inc/CrvPulseInfoReco.hh)
147
+
| crvpulsesmc | Vector branch | MC-truth information corresponding entry-by-entry to `crvpulses`| [see CrvHitInfoMC.hh](../inc/CrvHitInfoMC.hh)
143
148
## Trigger Branches
144
149
145
150
Trigger branches store trigger decision information for each event and track hypothesis. Each trigger branch corresponds to a different trigger path or decision criterion.
Copy file name to clipboardExpand all lines: inc/CrvPulseInfoReco.hh
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -15,15 +15,19 @@ namespace mu2e
15
15
int barId = -1; //CRV counter ID
16
16
int sectorId = -1; //CRV sector ID
17
17
int SiPMId = -1; //SiPMId number
18
+
intROC = -1; //ROC number
19
+
intFEB = -1; //FEB number
20
+
int FEBchannel = -1; //FEB channel number
18
21
int PEs = -1; //PEs using pulse integral
19
22
int PEsPulseHeight = -1; //PEs using pulse height
20
23
float pulseHeight = -1; //Pulse height
21
24
float pulseBeta = -1; //Pulse beta
22
25
float pulseFitChi2 = -1; //Pulse Fit chi2
23
26
float time = -1; //Time
27
+
int crvHitIndex = -1; //index of the CRV hit containing this pulse, or -1 if unclustered
24
28
25
29
CrvPulseInfoReco(){}
26
-
CrvPulseInfoReco(CLHEP::Hep3Vector ppos, int barId, int sectorId, int SiPMId, int PEs, int PEsPulseHeight, float pulseHeight, float pulseBeta, float pulseFitChi2, float time);
30
+
CrvPulseInfoReco(CLHEP::Hep3Vector ppos, int barId, int sectorId, int SiPMId, intROC, intFEB, int FEBchannel, intPEs, int PEsPulseHeight, float pulseHeight, float pulseBeta, float pulseFitChi2, float time, int crvHitIndex);
27
31
};
28
32
29
33
typedef std::vector<CrvPulseInfoReco> CrvPulseInfoRecoCollection; //this is the reco vector which will be stored in the main TTree
0 commit comments