Skip to content

Commit ae99d37

Browse files
authored
Merge pull request #116 from SBNSoftware/feature/aheggest_reassignCRTPMTMatchIDinCAF_fixGP
CRTPMTMatching fix: move function definition
2 parents 141d1e1 + 8a57c60 commit ae99d37

3 files changed

Lines changed: 67 additions & 37 deletions

File tree

sbnobj/Common/CRT/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
cet_make_library(
22
SOURCE
33
CRTHit.cc
4+
CRTPMTMatching.cxx
45
CRTTrack.cc
56
CRTTzero.cc
67
LIBRARIES
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/**
2+
* @file sbnobj/Common/CRTPMTMatching.cxx
3+
* @brief Data product to store CRT PMT Matches (implementation file).
4+
* @author Anna Heggestuen (aheggest@colostate.edu) and Francesco Poppi (poppi@bo.infn.it)
5+
* @date November 22, 2024
6+
* @see sbnobj/Common/CRTPMTMatching.hh
7+
*/
8+
9+
// Library header
10+
#include "sbnobj/Common/CRT/CRTPMTMatching.hh"
11+
12+
sbn::crt::MatchType sbn::crt::assignFlashClassification(
13+
unsigned int topen, unsigned int topex,
14+
unsigned int sideen, unsigned int sideex,
15+
unsigned int bottomen, unsigned int bottomex
16+
)
17+
{
18+
MatchType flashType;
19+
if (topen == 0 && sideen == 0 && topex == 0 && sideex == 0){
20+
if(bottomex==0 && bottomen==0) flashType = MatchType::noMatch;
21+
else if (bottomex>=1 && bottomen==0) flashType = MatchType::exBottom;
22+
else if (bottomex==0 && bottomen>=1) flashType = MatchType::enBottom;
23+
else flashType = MatchType::others;
24+
}
25+
else if (topen == 1 && sideen == 0 && topex == 0 && sideex == 0){
26+
if(bottomex==1 && bottomen==0) flashType = MatchType::enTop_exBottom;
27+
else flashType = MatchType::enTop;
28+
}
29+
else if (topen == 0 && sideen == 1 && topex == 0 && sideex == 0)
30+
if(bottomex==1 && bottomen==0) flashType = MatchType::enSide_exBottom;
31+
else flashType = MatchType::enSide;
32+
else if (topen == 1 && sideen == 0 && topex == 0 && sideex == 1)
33+
flashType = MatchType::enTop_exSide;
34+
else if (topen == 0 && sideen == 0 && topex == 1 && sideex == 0){
35+
if(bottomex==0 && bottomen==1) flashType = MatchType::exTop_enBottom;
36+
else flashType = MatchType::exTop;
37+
}
38+
else if (topen == 0 && sideen == 0 && topex == 0 && sideex == 1)
39+
if(bottomex==0 && bottomen==1) flashType = MatchType::exSide_enBottom;
40+
else flashType = MatchType::exSide;
41+
else if (topen >= 1 && sideen == 0 && topex == 0 && sideex == 0) // could also add `if (MatchBottomCRT)` here
42+
flashType = MatchType::enTop_mult;
43+
else if (topen >= 1 && sideen == 0 && topex == 0 && sideex >= 1) // and here
44+
flashType = MatchType::enTop_exSide_mult;
45+
else
46+
flashType = MatchType::others;
47+
return flashType;
48+
49+
}

sbnobj/Common/CRT/CRTPMTMatching.hh

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
* @date June 1 2023.
66
*/
77

8-
#ifndef CRTPMTMATCHING_hh_
9-
#define CRTPMTMATCHING_hh_
8+
#ifndef SBNOBJ_COMMON_CRTPMTMATCHING_HH
9+
#define SBNOBJ_COMMON_CRTPMTMATCHING_HH
1010

1111
// C++ includes
1212
#include <vector>
@@ -33,41 +33,21 @@ namespace sbn::crt {
3333
exSide_enBottom = 14, ///< Matched with one Bottom CRT hit before the optical flash and matched with one Side CRT hit after the optical flash.
3434
others = 9 ///< All the other cases.
3535
};
36-
MatchType assignFlashClassification(uint topen, uint topex,
37-
uint sideen, uint sideex,
38-
uint bottomen, uint bottomex)
39-
{
40-
MatchType flashType;
41-
if (topen == 0 && sideen == 0 && topex == 0 && sideex == 0){
42-
if(bottomex==0 && bottomen==0) flashType = MatchType::noMatch;
43-
else if (bottomex>=1 && bottomen==0) flashType = MatchType::exBottom;
44-
else if (bottomex==0 && bottomen>=1) flashType = MatchType::enBottom;
45-
else flashType = MatchType::others;
46-
}
47-
else if (topen == 1 && sideen == 0 && topex == 0 && sideex == 0){
48-
if(bottomex==1 && bottomen==0) flashType = MatchType::enTop_exBottom;
49-
else flashType = MatchType::enTop;
50-
}
51-
else if (topen == 0 && sideen == 1 && topex == 0 && sideex == 0)
52-
if(bottomex==1 && bottomen==0) flashType = MatchType::enSide_exBottom;
53-
else flashType = MatchType::enSide;
54-
else if (topen == 1 && sideen == 0 && topex == 0 && sideex == 1)
55-
flashType = MatchType::enTop_exSide;
56-
else if (topen == 0 && sideen == 0 && topex == 1 && sideex == 0){
57-
if(bottomex==0 && bottomen==1) flashType = MatchType::exTop_enBottom;
58-
else flashType = MatchType::exTop;
59-
}
60-
else if (topen == 0 && sideen == 0 && topex == 0 && sideex == 1)
61-
if(bottomex==0 && bottomen==1) flashType = MatchType::exSide_enBottom;
62-
else flashType = MatchType::exSide;
63-
else if (topen >= 1 && sideen == 0 && topex == 0 && sideex == 0) // could also add `if (MatchBottomCRT)` here
64-
flashType = MatchType::enTop_mult;
65-
else if (topen >= 1 && sideen == 0 && topex == 0 && sideex >= 1) // and here
66-
flashType = MatchType::enTop_exSide_mult;
67-
else
68-
flashType = MatchType::others;
69-
return flashType;
70-
}
36+
37+
/**
38+
* @brief Returns the classification of a TPC object based on the CRT hits associated to it.
39+
* @param topen number of hits on the top CRT earlier than the object (entering)
40+
* @param topex number of hits on the top CRT later than the object (exiting)
41+
* @param sideen number of hits on any side CRT earlier than the object (entering)
42+
* @param sideex number of hits on any side CRT later than the object (exiting)
43+
* @param bottomen number of hits on the bottom CRT earlier than the object (entering)
44+
* @param bottomex number of hits on the bottom side CRT later than the object (exiting)
45+
* @return a value encoding the classification of the TPC object
46+
*
47+
*/
48+
MatchType assignFlashClassification(unsigned int topen, unsigned int topex,
49+
unsigned int sideen, unsigned int sideex,
50+
unsigned int bottomen, unsigned int bottomex);
7151

7252
/// Information about a CRT hit matched with a PMT flash.
7353
struct MatchedCRT {

0 commit comments

Comments
 (0)