Skip to content

Commit ad9f659

Browse files
Merge pull request #228 from sophiemiddleton/Mu2eDisplay
New .fcl examples for updated geoms
2 parents 0f5cd33 + daeddb3 commit ad9f659

8 files changed

Lines changed: 290 additions & 2 deletions

File tree

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,20 @@ For more information about REve and the implementation for Mu2e see: https://mu2
1212
To use the display to scroll through events sequentially utilize either the ```nominal_example``` for nominal Mu2e geometry or ```extracted_example``` for the extracted geometry and run as you would any other .fcl:
1313

1414
```
15-
mu2e -c nominal_example.fcl <filename.art>
15+
mu2e -c <chosen_geom.fcl> <filename.art>
1616
```
1717

18+
The current available options for the .fcl are located in the ```examples``` directory. There are four main examples:
19+
20+
* nominal_MDC2020.fcl: with the original CRV geometry, to be used the MDC2020 samples
21+
* nominal_MDC2025.fcl: with the MDC2025 CRV geometry assuming the common GDML
22+
* extracted_MDC2020.fcl: for those still using MDC2020 extracted samples, to be retired
23+
* extracted_MDC2025.fcl: for those doing extracted studies with MDC2025 samples
24+
* nominal_Run1A.fcl: Run1A CRV geometry MDC2025
25+
* nominal_Run2.fcl: full CRV geometry, MDC2025
26+
27+
These .fcl can be edited as you wish (adding or removing certain features), they should provide good starting points for any study.
28+
1829
## Go to an given event
1930

2031
There are a number of ways to go from your analysis to a visualized event. Utilities are provided in both rooutils [cite] and pyutils [https://github.com/Mu2e/pyutils/blob/main/pyutils/pydisplay.py]. There is also a custom script in this repo ```config/EventDisplay.sh``` the usage is as follows:

examples/extracted_MDC2020.fcl

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# author : Sophie Middleton
2+
# purpose : example for extracted position tracks
3+
#include "Offline/fcl/minimalMessageService.fcl"
4+
#include "Offline/fcl/standardProducers.fcl"
5+
#include "Offline/fcl/standardServices.fcl"
6+
#include "EventDisplay/fcl/prolog.fcl"
7+
services : @local::Services.Reco
8+
process_name : HelixED
9+
source : { module_type : RootInput }
10+
physics :
11+
{
12+
analyzers : { @table::REveDis.analyzers}
13+
producers : { @table::REveDis.producers }
14+
filters : { @table::REveDis.filters }
15+
}
16+
//geometry options
17+
physics.analyzers.Mu2eEventDisplay.showCRV : true
18+
physics.analyzers.Mu2eEventDisplay.showPS : false
19+
physics.analyzers.Mu2eEventDisplay.showTS : false
20+
physics.analyzers.Mu2eEventDisplay.showST : false
21+
//highlight CRV bars which are "hit"
22+
physics.analyzers.Mu2eEventDisplay.addCRVBars : true
23+
physics.analyzers.Mu2eEventDisplay.filler.addCrvHits : true
24+
physics.analyzers.Mu2eEventDisplay.filler.addCrvClusters : true
25+
//for KinKal development
26+
physics.analyzers.Mu2eEventDisplay.addCrystalHits : true
27+
physics.analyzers.Mu2eEventDisplay.addKalInter : true
28+
physics.analyzers.Mu2eEventDisplay.addTrkStrawHits : true
29+
physics.analyzers.Mu2eEventDisplay.filler.addKalSeeds : true
30+
physics.analyzers.Mu2eEventDisplay.filler.addTrkHits : false
31+
//turn these off for now
32+
physics.analyzers.Mu2eEventDisplay.filler.addClusters : false //CaloClusters
33+
physics.analyzers.Mu2eEventDisplay.filler.addHits : false //ComboHits
34+
physics.analyzers.Mu2eEventDisplay.filler.addTimeClusters : false
35+
//pat rec CosmicTrackSeed
36+
physics.analyzers.Mu2eEventDisplay.filler.addCosmicTrackSeeds : false
37+
38+
// MC Trajectory:
39+
physics.analyzers.Mu2eEventDisplay.filler.addMCTraj : true
40+
41+
//setup extracted geometry
42+
physics.analyzers.Mu2eEventDisplay.extracted : true
43+
physics.analyzers.Mu2eEventDisplay.gdmlname :"Offline/gen/gdml/mu2e_extracted_MDC2020.gdml"
44+
45+
physics.analyzers.Mu2eEventDisplay.seqMode : true
46+
//for print statements
47+
physics.analyzers.Mu2eEventDisplay.diagLevel : 1
48+
//the path
49+
physics.EndPath : [ @sequence::REveDis.seqBase]
50+
physics.REvePath : @local::REvePath
51+
physics.trigger_paths : ["REvePath" ]
52+
physics.analyzers.Mu2eEventDisplay.SelectEvents : ["REvePath" ]
53+
54+
services.TFileService.fileName: "/dev/null"
55+
services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_extracted_MDC2020.txt"

examples/nominal_MDC2020.fcl

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# author : Sophie Middleton
2+
# purpose : example for helix tracks
3+
#include "Offline/fcl/minimalMessageService.fcl"
4+
#include "Offline/fcl/standardProducers.fcl"
5+
#include "Offline/fcl/standardServices.fcl"
6+
#include "EventDisplay/fcl/prolog.fcl"
7+
8+
services : @local::Services.Reco
9+
10+
process_name : HelixED
11+
12+
source : { module_type : RootInput }
13+
14+
physics :
15+
{
16+
analyzers : { @table::REveDis.analyzers}
17+
producers : { @table::REveDis.producers }
18+
filters : { @table::REveDis.filters }
19+
}
20+
# geometry options
21+
physics.analyzers.Mu2eEventDisplay.showCRV : true
22+
23+
physics.analyzers.Mu2eEventDisplay.showPS : false
24+
physics.analyzers.Mu2eEventDisplay.showTS : false
25+
physics.analyzers.Mu2eEventDisplay.showDS : false
26+
physics.analyzers.Mu2eEventDisplay.addCRVBars : true
27+
28+
physics.analyzers.Mu2eEventDisplay.addKalInter : true
29+
physics.analyzers.Mu2eEventDisplay.addCrystalHits : true
30+
physics.analyzers.Mu2eEventDisplay.filler.addHelixSeeds : false
31+
physics.analyzers.Mu2eEventDisplay.filler.addKalSeeds : true
32+
physics.analyzers.Mu2eEventDisplay.filler.addClusters : true
33+
physics.analyzers.Mu2eEventDisplay.filler.addHits : false # adds ComboHits
34+
physics.analyzers.Mu2eEventDisplay.filler.addCrvClusters : true
35+
physics.analyzers.Mu2eEventDisplay.filler.addCrvHits : true
36+
physics.analyzers.Mu2eEventDisplay.filler.addTimeClusters : false
37+
physics.analyzers.Mu2eEventDisplay.filler.addSimParts : false
38+
physics.analyzers.Mu2eEventDisplay.addTrkStrawHits : true
39+
physics.analyzers.Mu2eEventDisplay.filler.addCosmicTrackSeeds : false
40+
physics.analyzers.Mu2eEventDisplay.filler.addMCTraj : true
41+
physics.analyzers.Mu2eEventDisplay.specifyTag : false
42+
43+
# allows movement through events in sequential order
44+
physics.analyzers.Mu2eEventDisplay.seqMode : true
45+
physics.analyzers.Mu2eEventDisplay.strawdisplay : false
46+
47+
# print statements
48+
physics.analyzers.Mu2eEventDisplay.diagLevel : 10
49+
50+
# the path
51+
physics.EndPath : [ @sequence::REveDis.seqBase]
52+
physics.REvePath : @local::REvePath
53+
physics.trigger_paths : ["REvePath" ]
54+
physics.analyzers.Mu2eEventDisplay.SelectEvents : ["REvePath" ]
55+
56+
# useless file name
57+
services.TFileService.fileName: "/dev/null"
58+
59+
#
60+
# to display a selected set of events, #include this file with a list of eventid triplets: ie:
61+
#
62+
##include "Mu2eEventDisplay/examples/nominal_example.fcl"
63+
#physics.filters.eidsel.idsToMatch : [
64+
# "1202:636:337031",
65+
# "1202:648:370322" ]
66+
#
67+
physics.analyzers.Mu2eEventDisplay.gdmlname :"Offline/gen/gdml/mu2e_MDC2020.gdml"
68+
69+
source.inputCommands: ["keep *",
70+
"drop mu2e::CaloClusters_CaloClusterFast_*_*"
71+
]
72+
73+
services.TFileService.fileName: "/dev/null"
74+
services.GeometryService.inputFile: "Offline/Mu2eG4/geom/geom_common_MDC2020.txt"

examples/nominal_MDC2025.fcl

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# author : Sophie Middleton
2+
# purpose : example for helix tracks
3+
#include "Offline/fcl/minimalMessageService.fcl"
4+
#include "Offline/fcl/standardProducers.fcl"
5+
#include "Offline/fcl/standardServices.fcl"
6+
#include "EventDisplay/fcl/prolog.fcl"
7+
8+
services : @local::Services.Reco
9+
10+
process_name : HelixED
11+
12+
source : { module_type : RootInput }
13+
14+
physics :
15+
{
16+
analyzers : { @table::REveDis.analyzers}
17+
producers : { @table::REveDis.producers }
18+
filters : { @table::REveDis.filters }
19+
}
20+
# geometry options
21+
physics.analyzers.Mu2eEventDisplay.showCRV : true
22+
23+
physics.analyzers.Mu2eEventDisplay.showPS : false
24+
physics.analyzers.Mu2eEventDisplay.showTS : false
25+
physics.analyzers.Mu2eEventDisplay.showDS : false
26+
physics.analyzers.Mu2eEventDisplay.addCRVBars : false
27+
28+
physics.analyzers.Mu2eEventDisplay.addKalInter : true
29+
physics.analyzers.Mu2eEventDisplay.addCrystalHits : true
30+
physics.analyzers.Mu2eEventDisplay.filler.addHelixSeeds : false
31+
physics.analyzers.Mu2eEventDisplay.filler.addKalSeeds : true
32+
physics.analyzers.Mu2eEventDisplay.filler.addClusters : true
33+
physics.analyzers.Mu2eEventDisplay.filler.addHits : false # adds ComboHits
34+
physics.analyzers.Mu2eEventDisplay.filler.addCrvClusters : true
35+
physics.analyzers.Mu2eEventDisplay.filler.addCrvHits : true
36+
physics.analyzers.Mu2eEventDisplay.filler.addTimeClusters : false
37+
physics.analyzers.Mu2eEventDisplay.filler.addSimParts : false
38+
physics.analyzers.Mu2eEventDisplay.addTrkStrawHits : true
39+
physics.analyzers.Mu2eEventDisplay.filler.addCosmicTrackSeeds : false
40+
physics.analyzers.Mu2eEventDisplay.filler.addMCTraj : true
41+
physics.analyzers.Mu2eEventDisplay.specifyTag : false
42+
43+
# allows movement through events in sequential order
44+
physics.analyzers.Mu2eEventDisplay.seqMode : true
45+
physics.analyzers.Mu2eEventDisplay.strawdisplay : false
46+
47+
# print statements
48+
physics.analyzers.Mu2eEventDisplay.diagLevel : 10
49+
50+
# the path
51+
physics.EndPath : [ @sequence::REveDis.seqBase]
52+
physics.REvePath : @local::REvePath
53+
physics.trigger_paths : ["REvePath" ]
54+
physics.analyzers.Mu2eEventDisplay.SelectEvents : ["REvePath" ]
55+
56+
# useless file name
57+
services.TFileService.fileName: "/dev/null"
58+
59+
#
60+
# to display a selected set of events, #include this file with a list of eventid triplets: ie:
61+
#
62+
##include "Mu2eEventDisplay/examples/nominal_example.fcl"
63+
#physics.filters.eidsel.idsToMatch : [
64+
# "1202:636:337031",
65+
# "1202:648:370322" ]
66+
#
67+
physics.analyzers.Mu2eEventDisplay.gdmlname :"Offline/gen/gdml/mu2e_common.gdml"
68+
69+
70+
source.inputCommands: ["keep *",
71+
"drop mu2e::CaloClusters_CaloClusterFast_*_*"
72+
]
73+

examples/nominal_Run1a.fcl

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# author : Sophie Middleton
2+
# purpose : example for helix tracks
3+
#include "Offline/fcl/minimalMessageService.fcl"
4+
#include "Offline/fcl/standardProducers.fcl"
5+
#include "Offline/fcl/standardServices.fcl"
6+
#include "EventDisplay/fcl/prolog.fcl"
7+
8+
services : @local::Services.Reco
9+
10+
process_name : HelixED
11+
12+
source : { module_type : RootInput }
13+
14+
physics :
15+
{
16+
analyzers : { @table::REveDis.analyzers}
17+
producers : { @table::REveDis.producers }
18+
filters : { @table::REveDis.filters }
19+
}
20+
# geometry options
21+
physics.analyzers.Mu2eEventDisplay.showCRV : true
22+
23+
physics.analyzers.Mu2eEventDisplay.showPS : false
24+
physics.analyzers.Mu2eEventDisplay.showTS : false
25+
physics.analyzers.Mu2eEventDisplay.showDS : false
26+
physics.analyzers.Mu2eEventDisplay.addCRVBars : false
27+
28+
physics.analyzers.Mu2eEventDisplay.addKalInter : true
29+
physics.analyzers.Mu2eEventDisplay.addCrystalHits : true
30+
physics.analyzers.Mu2eEventDisplay.filler.addHelixSeeds : false
31+
physics.analyzers.Mu2eEventDisplay.filler.addKalSeeds : true
32+
physics.analyzers.Mu2eEventDisplay.filler.addClusters : true
33+
physics.analyzers.Mu2eEventDisplay.filler.addHits : false # adds ComboHits
34+
physics.analyzers.Mu2eEventDisplay.filler.addCrvClusters : true
35+
physics.analyzers.Mu2eEventDisplay.filler.addCrvHits : true
36+
physics.analyzers.Mu2eEventDisplay.filler.addTimeClusters : false
37+
physics.analyzers.Mu2eEventDisplay.filler.addSimParts : false
38+
physics.analyzers.Mu2eEventDisplay.addTrkStrawHits : true
39+
physics.analyzers.Mu2eEventDisplay.filler.addCosmicTrackSeeds : false
40+
physics.analyzers.Mu2eEventDisplay.filler.addMCTraj : true
41+
physics.analyzers.Mu2eEventDisplay.specifyTag : false
42+
43+
# allows movement through events in sequential order
44+
physics.analyzers.Mu2eEventDisplay.seqMode : true
45+
physics.analyzers.Mu2eEventDisplay.strawdisplay : false
46+
47+
# print statements
48+
physics.analyzers.Mu2eEventDisplay.diagLevel : 10
49+
50+
# the path
51+
physics.EndPath : [ @sequence::REveDis.seqBase]
52+
physics.REvePath : @local::REvePath
53+
physics.trigger_paths : ["REvePath" ]
54+
physics.analyzers.Mu2eEventDisplay.SelectEvents : ["REvePath" ]
55+
56+
# useless file name
57+
services.TFileService.fileName: "/dev/null"
58+
59+
#
60+
# to display a selected set of events, #include this file with a list of eventid triplets: ie:
61+
#
62+
##include "Mu2eEventDisplay/examples/nominal_example.fcl"
63+
#physics.filters.eidsel.idsToMatch : [
64+
# "1202:636:337031",
65+
# "1202:648:370322" ]
66+
#
67+
physics.analyzers.Mu2eEventDisplay.gdmlname :"Offline/gen/gdml/mu2e_run1_a.gdml"
68+
69+
70+
source.inputCommands: ["keep *",
71+
"drop mu2e::CaloClusters_CaloClusterFast_*_*"
72+
]
73+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ services.TFileService.fileName: "/dev/null"
6464
# "1202:636:337031",
6565
# "1202:648:370322" ]
6666
#
67+
physics.analyzers.Mu2eEventDisplay.gdmlname :"Offline/gen/gdml/mu2e_run2.gdml"
68+
6769

6870
source.inputCommands: ["keep *",
6971
"drop mu2e::CaloClusters_CaloClusterFast_*_*"

src/MainWindow.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@ void MainWindow::GeomDrawerExtracted(TGeoNode* node, REX::REveTrans& trans, REX:
606606
showNodesByName(node,i,kFALSE, 0, trans, caloholder, maxlevel, level, true, false, shift, false, false, drawconfigf.getInt("CALColor") );
607607
}
608608
if(geomOpt.showCaloCrystals){
609-
static std::vector <std::string> substrings_crystals {"CaloCrystal","CaloCrystalCsI","CaloCrystalLYSO"};
609+
static std::vector <std::string> substrings_crystals {"CaloWrapper"};
610610
for(auto& i: substrings_crystals){
611611
shift.at(0) = x_cal - x_trk;
612612
shift.at(1) = y_cal - y_trk;

0 commit comments

Comments
 (0)