Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
hcana
Manage
Activity
Members
Labels
Plan
Issues
6
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
jlab
hallc
analyzer_software
hcana
Commits
101b856f
Commit
101b856f
authored
6 years ago
by
Whitney Armstrong
Browse files
Options
Downloads
Plain Diff
Merge branch 'develop' into upderp
Conflicts: src/THcCherenkov.cxx
parents
33dd4d07
0263dc72
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
podd
+1
-1
1 addition, 1 deletion
podd
src/THcCherenkov.cxx
+33
-21
33 additions, 21 deletions
src/THcCherenkov.cxx
src/THcCherenkov.h
+2
-0
2 additions, 0 deletions
src/THcCherenkov.h
src/THcCoinTime.cxx
+15
-5
15 additions, 5 deletions
src/THcCoinTime.cxx
with
51 additions
and
27 deletions
podd
@
9001670b
Compare
1b2c04ad
...
9001670b
Subproject commit
1b2c04ad6976a7157f5cba98a5ea26278bca19ed
Subproject commit
9001670be3944886c4936d2b2eac8a94935b4390
This diff is collapsed.
Click to expand it.
src/THcCherenkov.cxx
+
33
−
21
View file @
101b856f
...
...
@@ -220,6 +220,8 @@ Int_t THcCherenkov::ReadDatabase(const TDatime& date) {
// Region parameters
fRegionsValueMax
=
fNRegions
*
8
;
fRegionValue
=
new
Double_t
[
fRegionsValueMax
];
fAdcGoodElem
=
new
Int_t
[
fNelem
];
fAdcPulseAmpTest
=
new
Double_t
[
fNelem
];
DBRequest
list
[]
=
{{
"_ped_limit"
,
fPedLimit
,
kInt
,
(
UInt_t
)
fNelem
,
optional
},
{
"_adc_to_npe"
,
fGain
,
kDouble
,
(
UInt_t
)
fNelem
},
...
...
@@ -468,29 +470,39 @@ Int_t THcCherenkov::ApplyCorrections(void) { return (0); }
//_____________________________________________________________________________
Int_t
THcCherenkov
::
CoarseProcess
(
TClonesArray
&
)
{
Double_t
StartTime
=
0.0
;
if
(
fglHod
)
StartTime
=
fglHod
->
GetStartTime
();
// Loop over the elements in the TClonesArray
for
(
Int_t
ielem
=
0
;
ielem
<
frAdcPulseInt
->
GetEntries
();
ielem
++
)
{
Int_t
npmt
=
((
THcSignalHit
*
)
frAdcPulseInt
->
ConstructedAt
(
ielem
))
->
GetPaddleNumber
()
-
1
;
Double_t
pulsePed
=
((
THcSignalHit
*
)
frAdcPed
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseInt
=
((
THcSignalHit
*
)
frAdcPulseInt
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseIntRaw
=
((
THcSignalHit
*
)
frAdcPulseIntRaw
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseAmp
=
((
THcSignalHit
*
)
frAdcPulseAmp
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseTime
=
((
THcSignalHit
*
)
frAdcPulseTime
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
adctdcdiffTime
=
StartTime
-
pulseTime
;
Bool_t
errorFlag
=
((
THcSignalHit
*
)
fAdcErrorFlag
->
ConstructedAt
(
ielem
))
->
GetData
();
Bool_t
pulseTimeCut
=
adctdcdiffTime
>
fAdcTimeWindowMin
[
npmt
]
&&
adctdcdiffTime
<
fAdcTimeWindowMax
[
npmt
];
if
(
!
errorFlag
)
{
fGoodAdcMult
.
at
(
npmt
)
+=
1
;
if
(
fglHod
)
StartTime
=
fglHod
->
GetStartTime
();
for
(
Int_t
ipmt
=
0
;
ipmt
<
fNelem
;
ipmt
++
)
{
fAdcPulseAmpTest
[
ipmt
]
=
-
1000.
;
fAdcGoodElem
[
ipmt
]
=-
1
;
}
//
for
(
Int_t
ielem
=
0
;
ielem
<
frAdcPulseInt
->
GetEntries
();
ielem
++
)
{
Int_t
npmt
=
((
THcSignalHit
*
)
frAdcPulseInt
->
ConstructedAt
(
ielem
))
->
GetPaddleNumber
()
-
1
;
Double_t
pulseTime
=
((
THcSignalHit
*
)
frAdcPulseTime
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseAmp
=
((
THcSignalHit
*
)
frAdcPulseAmp
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
adctdcdiffTime
=
StartTime
-
pulseTime
;
Bool_t
errorFlag
=
((
THcSignalHit
*
)
fAdcErrorFlag
->
ConstructedAt
(
ielem
))
->
GetData
();
Bool_t
pulseTimeCut
=
adctdcdiffTime
>
fAdcTimeWindowMin
[
npmt
]
&&
adctdcdiffTime
<
fAdcTimeWindowMax
[
npmt
];
if
(
!
errorFlag
)
{
fGoodAdcMult
.
at
(
npmt
)
+=
1
;
}
if
(
!
errorFlag
&&
pulseTimeCut
&&
pulseAmp
>
fAdcPulseAmpTest
[
npmt
])
{
fAdcGoodElem
[
npmt
]
=
ielem
;
fAdcPulseAmpTest
[
npmt
]
=
pulseAmp
;
}
}
// Loop over the npmt
for
(
Int_t
npmt
=
0
;
npmt
<
fNelem
;
npmt
++
)
{
Int_t
ielem
=
fAdcGoodElem
[
npmt
];
if
(
ielem
!=
-
1
)
{
Double_t
pulsePed
=
((
THcSignalHit
*
)
frAdcPed
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseInt
=
((
THcSignalHit
*
)
frAdcPulseInt
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseIntRaw
=
((
THcSignalHit
*
)
frAdcPulseIntRaw
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseAmp
=
((
THcSignalHit
*
)
frAdcPulseAmp
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
pulseTime
=
((
THcSignalHit
*
)
frAdcPulseTime
->
ConstructedAt
(
ielem
))
->
GetData
();
Double_t
adctdcdiffTime
=
StartTime
-
pulseTime
;
// By default, the last hit within the timing cut will be considered "good"
if
(
!
errorFlag
&&
pulseTimeCut
)
{
fGoodAdcPed
.
at
(
npmt
)
=
pulsePed
;
fGoodAdcHitUsed
.
at
(
npmt
)
=
ielem
+
1
;
fGoodAdcPulseInt
.
at
(
npmt
)
=
pulseInt
;
...
...
This diff is collapsed.
Click to expand it.
src/THcCherenkov.h
+
2
−
0
View file @
101b856f
...
...
@@ -115,6 +115,8 @@ public:
Double_t
*
fPedMean
;
/* Can be supplied in parameters and then */
Double_t
*
fPed
;
Double_t
*
fThresh
;
Double_t
*
fAdcPulseAmpTest
;
Int_t
*
fAdcGoodElem
;
// 12 Gev FADC variables
TClonesArray
*
frAdcPedRaw
;
...
...
This diff is collapsed.
Click to expand it.
src/THcCoinTime.cxx
+
15
−
5
View file @
101b856f
...
...
@@ -180,6 +180,10 @@ Int_t THcCoinTime::DefineVariables( EMode mode )
{
"CoinTime_RAW_ROC1"
,
"ROC1 RAW Coincidence Time"
,
"fROC1_RAW_CoinTime"
},
{
"CoinTime_RAW_ROC2"
,
"ROC2 RAW Coincidence Time"
,
"fROC2_RAW_CoinTime"
},
{
"DeltaSHMSPathLength"
,
"DeltaSHMSpathLength (cm)"
,
"DeltaSHMSpathLength"
},
{
"DeltaHMSPathLength"
,
"DeltaHMSpathLength (cm)"
,
"DeltaHMSpathLength"
},
{
"had_coinCorr_Positron"
,
""
,
"had_coinCorr_Positron"
},
{
"elec_coinCorr"
,
""
,
"elec_coinCorr"
},
{
0
}
};
...
...
@@ -216,6 +220,8 @@ Int_t THcCoinTime::Process( const THaEvData& evdata )
//Gather relevant variables for Coincidence time calculation
lightSpeed
=
29.9792
;
// in cm/ns
elec_coinCorr
=
kBig
;
had_coinCorr_Positron
=
kBig
;
//Particle Masses (HardCoded)
elecMass
=
0.510998
/
1000.0
;
// electron mass in GeV/c^2
positronMass
=
0.510998
/
1000.0
;
...
...
@@ -240,6 +246,8 @@ Int_t THcCoinTime::Process( const THaEvData& evdata )
Double_t
SHMS_FPtime
=
theSHMSTrack
->
GetFPTime
();
//HMS arm
Double_t
hms_xptar
=
theHMSTrack
->
GetTTheta
();
Double_t
hms_dP
=
theHMSTrack
->
GetDp
();
Double_t
hms_xfp
=
theHMSTrack
->
GetX
();
Double_t
hms_xpfp
=
theHMSTrack
->
GetTheta
();
Double_t
hms_ypfp
=
theHMSTrack
->
GetPhi
();
...
...
@@ -251,8 +259,10 @@ Int_t THcCoinTime::Process( const THaEvData& evdata )
pTRIG1_TdcTime_ROC2
=
fCoinDet
->
Get_CT_Trigtime
(
2
);
//SHMS
pTRIG4_TdcTime_ROC2
=
fCoinDet
->
Get_CT_Trigtime
(
3
);
//HMS
DeltaSHMSpathLength
=
-
0.11
*
atan2
(
shms_xptar
,
1
)
*
1000
-
0.057
*
shms_dP
;
DeltaHMSpathLength
=
12.462
*
hms_xpfp
+
0.1138
*
hms_xpfp
*
hms_xfp
-
0.0154
*
hms_xfp
-
72.292
*
hms_xpfp
*
hms_xpfp
-
0.0000544
*
hms_xfp
*
had_xfp
-
116.52
*
hms_ypfp
*
hms_ypfp
;
DeltaSHMSpathLength
=
.11
*
shms_xptar
*
1000
+
0.057
*
shms_dP
/
100.
;
DeltaHMSpathLength
=
-
1.0
*
(
12.462
*
hms_xpfp
+
0.1138
*
hms_xpfp
*
hms_xfp
-
0.0154
*
hms_xfp
-
72.292
*
hms_xpfp
*
hms_xpfp
-
0.0000544
*
hms_xfp
*
had_xfp
-
116.52
*
hms_ypfp
*
hms_ypfp
);
DeltaHMSpathLength
=
(
.12
*
hms_xptar
*
1000
+
0.17
*
hms_dP
/
100.
);
// default assume SHMS is electron arm
Double_t
ElecPathLength
=
SHMScentralPathLen
+
DeltaSHMSpathLength
;
Double_t
HadPathLength
=
HMScentralPathLen
+
DeltaHMSpathLength
;
...
...
@@ -266,7 +276,6 @@ Int_t THcCoinTime::Process( const THaEvData& evdata )
had_P
=
theSHMSTrack
->
GetP
();
//hadron golden track arm momentum
sign
=
1
;
}
//beta calculations beta = v/c = p/E
elecArm_BetaCalc
=
elec_P
/
sqrt
(
elec_P
*
elec_P
+
elecMass
*
elecMass
);
hadArm_BetaCalc_proton
=
had_P
/
sqrt
(
had_P
*
had_P
+
protonMass
*
protonMass
);
...
...
@@ -302,9 +311,10 @@ Int_t THcCoinTime::Process( const THaEvData& evdata )
fROC2_ePiCoinTime
=
fROC2_RAW_CoinTime
+
sign
*
(
elec_coinCorr
-
had_coinCorr_Pion
)
-
eHad_CT_Offset
;
//POSITRON
fROC1_ePosCoinTime
=
fROC1_RAW_CoinTime
+
sign
*
(
elec_coinCorr
+
had_coinCorr_Positron
)
-
eHad_CT_Offset
;
fROC2_ePosCoinTime
=
fROC2_RAW_CoinTime
+
sign
*
(
elec_coinCorr
+
had_coinCorr_Positron
)
-
eHad_CT_Offset
;
fROC1_ePosCoinTime
=
fROC1_RAW_CoinTime
+
sign
*
(
elec_coinCorr
-
had_coinCorr_Positron
)
-
eHad_CT_Offset
;
fROC2_ePosCoinTime
=
fROC2_RAW_CoinTime
+
sign
*
(
elec_coinCorr
-
had_coinCorr_Positron
)
-
eHad_CT_Offset
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment