Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cbmroot
Manage
Activity
Members
Labels
Plan
Wiki
Redmine
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
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
Computing
cbmroot
Commits
728de1bf
Commit
728de1bf
authored
4 years ago
by
Pierre-Alain Loizeau
Browse files
Options
Downloads
Patches
Plain Diff
Apply clang-format to changed files (except CreateHistos method)
parent
8d9d2e9e
No related branches found
Branches containing commit
Tags
dev_2021_37
Tags containing commit
No related merge requests found
Changes
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
+248
-210
248 additions, 210 deletions
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
+71
-55
71 additions, 55 deletions
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
with
319 additions
and
265 deletions
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
+
248
−
210
View file @
728de1bf
This diff is collapsed.
Click to expand it.
fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
+
71
−
55
View file @
728de1bf
...
@@ -37,18 +37,21 @@ enum class EOverlapMode { NoOverlap, MergeOverlap, AllowOverlap };
...
@@ -37,18 +37,21 @@ enum class EOverlapMode { NoOverlap, MergeOverlap, AllowOverlap };
class
EventBuilderDetector
{
class
EventBuilderDetector
{
public:
public:
EventBuilderDetector
()
{
;
}
EventBuilderDetector
()
{
;
}
EventBuilderDetector
(
ECbmModuleId
detIdIn
,
ECbmDataType
dataTypeIn
,
std
::
string
sNameIn
)
EventBuilderDetector
(
ECbmModuleId
detIdIn
,
{
ECbmDataType
dataTypeIn
,
detId
=
detIdIn
;
std
::
string
sNameIn
)
{
detId
=
detIdIn
;
dataType
=
dataTypeIn
;
dataType
=
dataTypeIn
;
sName
=
sNameIn
;
sName
=
sNameIn
;
}
}
EventBuilderDetector
(
ECbmModuleId
detIdIn
,
ECbmDataType
dataTypeIn
,
EventBuilderDetector
(
ECbmModuleId
detIdIn
,
ECbmDataType
dataTypeIn
,
std
::
string
sNameIn
,
std
::
string
sNameIn
,
UInt_t
uTriggerMinDigisIn
,
Int_t
iTriggerMaxDigisIn
,
UInt_t
uTriggerMinDigisIn
,
Double_t
fdTimeWinBegIn
,
Double_t
fdTimeWinEndIn
)
:
Int_t
iTriggerMaxDigisIn
,
EventBuilderDetector
(
detIdIn
,
dataTypeIn
,
sNameIn
)
Double_t
fdTimeWinBegIn
,
{
Double_t
fdTimeWinEndIn
)
:
EventBuilderDetector
(
detIdIn
,
dataTypeIn
,
sNameIn
)
{
fuTriggerMinDigis
=
uTriggerMinDigisIn
;
fuTriggerMinDigis
=
uTriggerMinDigisIn
;
fiTriggerMaxDigis
=
iTriggerMaxDigisIn
;
fiTriggerMaxDigis
=
iTriggerMaxDigisIn
;
...
@@ -57,16 +60,16 @@ public:
...
@@ -57,16 +60,16 @@ public:
}
}
/// Settings
/// Settings
ECbmModuleId
detId
=
ECbmModuleId
::
kNotExist
;
ECbmModuleId
detId
=
ECbmModuleId
::
kNotExist
;
ECbmDataType
dataType
=
ECbmDataType
::
kUnknown
;
ECbmDataType
dataType
=
ECbmDataType
::
kUnknown
;
std
::
string
sName
=
"Invalid"
;
std
::
string
sName
=
"Invalid"
;
/// Minimum number of T0 digis needed to generate a trigger, 0 means don't use for trigger generation
/// Minimum number of T0 digis needed to generate a trigger, 0 means don't use for trigger generation
UInt_t
fuTriggerMinDigis
=
0
;
UInt_t
fuTriggerMinDigis
=
0
;
/// Maximum number of digis per detector to generate an event, -1 means no cut, 0 means anti-coinc trigger
/// Maximum number of digis per detector to generate an event, -1 means no cut, 0 means anti-coinc trigger
Int_t
fiTriggerMaxDigis
=
-
1
;
Int_t
fiTriggerMaxDigis
=
-
1
;
/// Selection Window
/// Selection Window
Double_t
fdTimeWinBeg
=
-
100
;
Double_t
fdTimeWinBeg
=
-
100
;
Double_t
fdTimeWinEnd
=
100
;
Double_t
fdTimeWinEnd
=
100
;
/// Book-keeping variables
/// Book-keeping variables
UInt_t
fuStartIndex
=
0
;
UInt_t
fuStartIndex
=
0
;
...
@@ -98,18 +101,20 @@ public:
...
@@ -98,18 +101,20 @@ public:
void
SetFillHistos
(
Bool_t
var
)
{
fbFillHistos
=
var
;
}
void
SetFillHistos
(
Bool_t
var
)
{
fbFillHistos
=
var
;
}
void
ResetHistograms
(
Bool_t
bResetTime
=
kTRUE
);
void
ResetHistograms
(
Bool_t
bResetTime
=
kTRUE
);
void
SetReferenceDetector
(
ECbmModuleId
refDet
,
ECbmDataType
dataTypeIn
,
void
SetReferenceDetector
(
ECbmModuleId
refDet
,
ECbmDataType
dataTypeIn
,
std
::
string
sNameIn
,
std
::
string
sNameIn
,
UInt_t
uTriggerMinDigisIn
=
0
,
UInt_t
uTriggerMinDigisIn
=
0
,
Int_t
iTriggerMaxDigisIn
=
-
1
,
Int_t
iTriggerMaxDigisIn
=
-
1
,
Double_t
fdTimeWinBegIn
=
-
100
,
Double_t
fdTimeWinBegIn
=
-
100
,
Double_t
fdTimeWinEndIn
=
100
);
Double_t
fdTimeWinEndIn
=
100
);
void
AddDetector
(
ECbmModuleId
selDet
,
ECbmDataType
dataTypeIn
,
void
AddDetector
(
ECbmModuleId
selDet
,
ECbmDataType
dataTypeIn
,
std
::
string
sNameIn
,
std
::
string
sNameIn
,
UInt_t
uTriggerMinDigisIn
=
0
,
UInt_t
uTriggerMinDigisIn
=
0
,
Int_t
iTriggerMaxDigisIn
=
-
1
,
Int_t
iTriggerMaxDigisIn
=
-
1
,
Double_t
fdTimeWinBegIn
=
-
100
,
Double_t
fdTimeWinBegIn
=
-
100
,
Double_t
fdTimeWinEndIn
=
100
);
Double_t
fdTimeWinEndIn
=
100
);
void
SetReferenceDetector
(
ECbmModuleId
refDet
);
void
SetReferenceDetector
(
ECbmModuleId
refDet
);
void
AddDetector
(
ECbmModuleId
selDet
);
void
AddDetector
(
ECbmModuleId
selDet
);
...
@@ -118,8 +123,8 @@ public:
...
@@ -118,8 +123,8 @@ public:
void
SetTriggerMinNumber
(
ECbmModuleId
selDet
,
UInt_t
uVal
);
void
SetTriggerMinNumber
(
ECbmModuleId
selDet
,
UInt_t
uVal
);
void
SetTriggerMaxNumber
(
ECbmModuleId
selDet
,
Int_t
iVal
);
void
SetTriggerMaxNumber
(
ECbmModuleId
selDet
,
Int_t
iVal
);
void
SetTriggerWindow
(
ECbmModuleId
selDet
,
void
Double_t
dWinBeg
,
Double_t
dWinEnd
);
SetTriggerWindow
(
ECbmModuleId
selDet
,
Double_t
dWinBeg
,
Double_t
dWinEnd
);
/// Control flags
/// Control flags
void
SetEventOverlapMode
(
EOverlapMode
mode
)
{
fOverMode
=
mode
;
}
void
SetEventOverlapMode
(
EOverlapMode
mode
)
{
fOverMode
=
mode
;
}
...
@@ -129,13 +134,15 @@ public:
...
@@ -129,13 +134,15 @@ public:
/// For monitor algos
/// For monitor algos
void
AddHistoToVector
(
TNamed
*
pointer
,
std
::
string
sFolder
=
""
)
{
void
AddHistoToVector
(
TNamed
*
pointer
,
std
::
string
sFolder
=
""
)
{
fvpAllHistoPointers
.
push_back
(
std
::
pair
<
TNamed
*
,
std
::
string
>
(
pointer
,
sFolder
));
fvpAllHistoPointers
.
push_back
(
std
::
pair
<
TNamed
*
,
std
::
string
>
(
pointer
,
sFolder
));
}
}
std
::
vector
<
std
::
pair
<
TNamed
*
,
std
::
string
>>
GetHistoVector
()
{
std
::
vector
<
std
::
pair
<
TNamed
*
,
std
::
string
>>
GetHistoVector
()
{
return
fvpAllHistoPointers
;
return
fvpAllHistoPointers
;
}
}
void
AddCanvasToVector
(
TCanvas
*
pointer
,
std
::
string
sFolder
=
""
)
{
void
AddCanvasToVector
(
TCanvas
*
pointer
,
std
::
string
sFolder
=
""
)
{
fvpAllCanvasPointers
.
push_back
(
std
::
pair
<
TCanvas
*
,
std
::
string
>
(
pointer
,
sFolder
));
fvpAllCanvasPointers
.
push_back
(
std
::
pair
<
TCanvas
*
,
std
::
string
>
(
pointer
,
sFolder
));
}
}
std
::
vector
<
std
::
pair
<
TCanvas
*
,
std
::
string
>>
GetCanvasVector
()
{
std
::
vector
<
std
::
pair
<
TCanvas
*
,
std
::
string
>>
GetCanvasVector
()
{
return
fvpAllCanvasPointers
;
return
fvpAllCanvasPointers
;
...
@@ -147,20 +154,21 @@ public:
...
@@ -147,20 +154,21 @@ public:
private
:
private
:
/// Internal methods
/// Internal methods
Bool_t
CheckDataAvailable
(
EventBuilderDetector
&
det
);
Bool_t
CheckDataAvailable
(
EventBuilderDetector
&
det
);
void
InitTs
();
void
InitTs
();
void
BuildEvents
();
void
BuildEvents
();
void
CreateHistograms
();
void
CreateHistograms
();
void
FillHistos
();
void
FillHistos
();
template
<
class
DigiSeed
>
void
LoopOnSeeds
();
template
<
class
DigiSeed
>
void
LoopOnSeeds
();
void
CheckSeed
(
Double_t
dSeedTime
,
UInt_t
uSeedDigiIdx
);
void
CheckSeed
(
Double_t
dSeedTime
,
UInt_t
uSeedDigiIdx
);
template
<
class
DigiCheck
>
void
SearchMatches
(
Double_t
dSeedTime
,
EventBuilderDetector
&
detMatch
);
template
<
class
DigiCheck
>
void
AddDigiToEvent
(
EventBuilderDetector
&
det
,
Int_t
uIdx
);
void
SearchMatches
(
Double_t
dSeedTime
,
EventBuilderDetector
&
detMatch
);
void
AddDigiToEvent
(
EventBuilderDetector
&
det
,
Int_t
uIdx
);
Bool_t
HasTrigger
(
CbmEvent
*
);
Bool_t
HasTrigger
(
CbmEvent
*
);
Bool_t
CheckTriggerConditions
(
CbmEvent
*
event
,
Bool_t
CheckTriggerConditions
(
CbmEvent
*
event
,
EventBuilderDetector
&
det
);
EventBuilderDetector
&
det
);
void
UpdateTimeWinBoundariesExtrema
();
void
UpdateTimeWinBoundariesExtrema
();
void
UpdateWidestTimeWinRange
();
void
UpdateWidestTimeWinRange
();
...
@@ -176,15 +184,15 @@ private:
...
@@ -176,15 +184,15 @@ private:
/// Event building mode and detectors selection
/// Event building mode and detectors selection
EOverlapMode
fOverMode
{
EOverlapMode
::
AllowOverlap
};
EOverlapMode
fOverMode
{
EOverlapMode
::
AllowOverlap
};
EventBuilderDetector
fRefDet
=
EventBuilderDetector
(
ECbmModuleId
::
kT0
,
ECbmDataType
::
kT0Digi
,
"T0"
);
EventBuilderDetector
fRefDet
=
std
::
vector
<
EventBuilderDetector
>
fvDets
=
{
EventBuilderDetector
(
ECbmModuleId
::
kT0
,
ECbmDataType
::
kT0Digi
,
"T0"
);
EventBuilderDetector
(
ECbmModuleId
::
kSts
,
ECbmDataType
::
kStsDigi
,
"kSts"
),
std
::
vector
<
EventBuilderDetector
>
fvDets
=
{
EventBuilderDetector
(
ECbmModuleId
::
k
Much
,
ECbmDataType
::
k
Much
Digi
,
"k
Much"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Sts
,
ECbmDataType
::
k
Sts
Digi
,
"k
Sts"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Trd
,
ECbmDataType
::
k
Trd
Digi
,
"k
Trd"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Much
,
ECbmDataType
::
k
Much
Digi
,
"k
Much"
),
EventBuilderDetector
(
ECbmModuleId
::
kT
of
,
ECbmDataType
::
kT
of
Digi
,
"kT
of"
),
EventBuilderDetector
(
ECbmModuleId
::
kT
rd
,
ECbmDataType
::
kT
rd
Digi
,
"kT
rd"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Rich
,
ECbmDataType
::
k
Rich
Digi
,
"k
Rich"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Tof
,
ECbmDataType
::
k
Tof
Digi
,
"k
Tof"
),
EventBuilderDetector
(
ECbmModuleId
::
k
Psd
,
ECbmDataType
::
k
Psd
Digi
,
"k
Psd"
)
EventBuilderDetector
(
ECbmModuleId
::
k
Rich
,
ECbmDataType
::
k
Rich
Digi
,
"k
Rich"
),
};
EventBuilderDetector
(
ECbmModuleId
::
kPsd
,
ECbmDataType
::
kPsdDigi
,
"kPsd"
)
};
Double_t
fdEarliestTimeWinBeg
=
kdDefaultTimeWinBeg
;
Double_t
fdEarliestTimeWinBeg
=
kdDefaultTimeWinBeg
;
Double_t
fdLatestTimeWinEnd
=
kdDefaultTimeWinEnd
;
Double_t
fdLatestTimeWinEnd
=
kdDefaultTimeWinEnd
;
...
@@ -199,7 +207,8 @@ private:
...
@@ -199,7 +207,8 @@ private:
const
TimesliceMetaData
*
pTsMetaData
=
nullptr
;
const
TimesliceMetaData
*
pTsMetaData
=
nullptr
;
/// Data ouptut
/// Data ouptut
CbmEvent
*
fCurrentEvent
=
nullptr
;
//! pointer to the event which is currently build
CbmEvent
*
fCurrentEvent
=
nullptr
;
//! pointer to the event which is currently build
std
::
vector
<
CbmEvent
*>
fEventVector
=
{};
//! vector with all created events
std
::
vector
<
CbmEvent
*>
fEventVector
=
{};
//! vector with all created events
/// Monitoring histograms
/// Monitoring histograms
...
@@ -213,21 +222,28 @@ private:
...
@@ -213,21 +222,28 @@ private:
/// ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH1 * >(vHistos[ uHisto ].first) );
/// ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH1 * >(vHistos[ uHisto ].first) );
/// ===> else if( !strncmp( sClassName, "TH2", 3 ) )
/// ===> else if( !strncmp( sClassName, "TH2", 3 ) )
/// ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH2 * >(vHistos[ uHisto ].first) );
/// ===> server->Register( vHistos[ uHisto ].second.data(), dynamic_cast< TH2 * >(vHistos[ uHisto ].first) );
std
::
vector
<
std
::
pair
<
TNamed
*
,
std
::
string
>>
fvpAllHistoPointers
;
//! Vector of pointers to histograms + optional folder name
std
::
vector
<
std
::
pair
<
TNamed
*
,
std
::
string
>>
std
::
vector
<
std
::
pair
<
TCanvas
*
,
std
::
string
>>
fvpAllCanvasPointers
;
//! Vector of pointers to canvases + optional folder name
fvpAllHistoPointers
;
//! Vector of pointers to histograms + optional folder name
std
::
vector
<
std
::
pair
<
TCanvas
*
,
std
::
string
>>
fvpAllCanvasPointers
;
//! Vector of pointers to canvases + optional folder name
TH1
*
fhEventTime
=
nullptr
;
//! histogram with the seed time of the events
TH1
*
fhEventTime
=
nullptr
;
//! histogram with the seed time of the events
TH1
*
fhEventDt
=
nullptr
;
//! histogram with the interval in seed time of consecutive events
TH1
*
fhEventDt
=
TH1
*
fhEventSize
=
nullptr
;
//! histogram with the nb of all digis in the event
nullptr
;
//! histogram with the interval in seed time of consecutive events
TH2
*
fhNbDigiPerEvtTime
=
nullptr
;
//! histogram with the nb of all digis per event vs seed time of the events
TH1
*
fhEventSize
=
std
::
vector
<
TH2
*
>
fvhNbDigiPerEvtTimeDet
=
{};
//! histograms with the nb of digis in each detector per event vs seed time of the events
nullptr
;
//! histogram with the nb of all digis in the event
TH2
*
fhNbDigiPerEvtTime
=
nullptr
;
//! histogram with the nb of all digis per event vs seed time of the events
std
::
vector
<
TH2
*>
fvhNbDigiPerEvtTimeDet
=
{};
//! histograms with the nb of digis in each detector per event vs seed time of the events
/// Internal state variables
/// Internal state variables
UInt_t
fuCurEv
=
0
;
//! Event Counter
UInt_t
fuCurEv
=
0
;
//! Event Counter
UInt_t
fuErrors
=
0
;
//! Error Counter
UInt_t
fuErrors
=
0
;
//! Error Counter
UInt_t
fuNrTs
=
0
;
//! Timeslice Counter
UInt_t
fuNrTs
=
0
;
//! Timeslice Counter
Double_t
fdPrevEvtTime
=
0.
;
//! Save previous time information
Double_t
fdPrevEvtTime
=
0.
;
//! Save previous time information
Double_t
fdPrevEvtEndTime
=
0.
;
//! Save previous event last digi time information
Double_t
fdPrevEvtEndTime
=
0.
;
//! Save previous event last digi time information
ClassDefNV
(
CbmMcbm2019TimeWinEventBuilderAlgo
,
1
);
ClassDefNV
(
CbmMcbm2019TimeWinEventBuilderAlgo
,
1
);
};
};
...
...
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