31
31
#include " Framework/AnalysisTask.h"
32
32
#include " Framework/RunningWorkflowInfo.h"
33
33
#include " Framework/runDataProcessing.h"
34
-
34
+ //
35
+ #include " string"
36
+ #include " vector"
37
+ #include " set"
35
38
//
36
39
namespace extConfPar
37
40
{
@@ -139,6 +142,7 @@ struct qaMatchEff {
139
142
// Other track settings
140
143
// TRD presence
141
144
Configurable<int > isTRDThere{" isTRDThere" , 2 , " Integer to turn the presence of TRD off, on, don't care (0,1,anything else)" };
145
+ Configurable<int > isTOFThere{" isTOFThere" , 2 , " Integer to turn the presence of TOF off, on, don't care (0,1,anything else)" };
142
146
//
143
147
Configurable<bool > isitMC{" isitMC" , false , " Reading MC files, data if false" };
144
148
Configurable<bool > doDebug{" doDebug" , false , " Flag of debug information" };
@@ -1504,6 +1508,11 @@ struct qaMatchEff {
1504
1508
continue ;
1505
1509
if ((isTRDThere == 0 ) && track.hasTRD ())
1506
1510
continue ;
1511
+ // choose if we keep the track according to the TOF presence requirement
1512
+ if ((isTOFThere == 1 ) && !track.hasTOF ())
1513
+ continue ;
1514
+ if ((isTOFThere == 0 ) && track.hasTOF ())
1515
+ continue ;
1507
1516
1508
1517
// kinematic track seletions for all tracks
1509
1518
if (!isTrackSelectedKineCuts (track))
@@ -2363,7 +2372,7 @@ struct qaMatchEff {
2363
2372
histos.get <TH1>(HIST (" data/PID/etahist_tpc_noidminus" ))->Fill (track.eta ());
2364
2373
}
2365
2374
} // not pions, nor kaons, nor protons
2366
- } // end if DATA
2375
+ } // end if DATA
2367
2376
//
2368
2377
if (trkWITS && isTrackSelectedITSCuts (track)) { // ////////////////////////////////////////// ITS tag inside TPC tagged
2369
2378
if constexpr (IS_MC) { // ////////////////////// MC
@@ -2703,7 +2712,7 @@ struct qaMatchEff {
2703
2712
// }
2704
2713
}
2705
2714
} // end if ITS
2706
- } // end if TPC
2715
+ } // end if TPC
2707
2716
//
2708
2717
//
2709
2718
// if (trkWITS) {
@@ -2830,9 +2839,9 @@ struct qaMatchEff {
2830
2839
histos.get <TH1>(HIST (" data/etahist_tpcits_pos" ))->Fill (track.eta ());
2831
2840
}
2832
2841
} // end if ITS
2833
- } // end if TPC
2834
- //
2835
- } // end positive
2842
+ } // end if TPC
2843
+ //
2844
+ } // end positive
2836
2845
//
2837
2846
// negative only
2838
2847
if (track.signed1Pt () < 0 ) {
@@ -2857,9 +2866,9 @@ struct qaMatchEff {
2857
2866
histos.get <TH1>(HIST (" data/etahist_tpcits_neg" ))->Fill (track.eta ());
2858
2867
}
2859
2868
} // end if ITS
2860
- } // end if TPC
2861
- //
2862
- } // end negative
2869
+ } // end if TPC
2870
+ //
2871
+ } // end negative
2863
2872
2864
2873
if constexpr (IS_MC) { // MC
2865
2874
auto mcpart = track.mcParticle ();
@@ -2883,7 +2892,7 @@ struct qaMatchEff {
2883
2892
histos.get <TH1>(HIST (" MC/primsec/phihist_tpcits_prim" ))->Fill (track.phi ());
2884
2893
histos.get <TH1>(HIST (" MC/primsec/etahist_tpcits_prim" ))->Fill (track.eta ());
2885
2894
} // end if ITS
2886
- } // end if TPC
2895
+ } // end if TPC
2887
2896
// end if primaries
2888
2897
} else if (mcpart.getProcess () == 4 ) {
2889
2898
//
@@ -2905,7 +2914,7 @@ struct qaMatchEff {
2905
2914
histos.get <TH1>(HIST (" MC/primsec/phihist_tpcits_secd" ))->Fill (track.phi ());
2906
2915
histos.get <TH1>(HIST (" MC/primsec/etahist_tpcits_secd" ))->Fill (track.eta ());
2907
2916
} // end if ITS
2908
- } // end if TPC
2917
+ } // end if TPC
2909
2918
// end if secondaries from decay
2910
2919
} else {
2911
2920
//
@@ -2927,8 +2936,8 @@ struct qaMatchEff {
2927
2936
histos.get <TH1>(HIST (" MC/primsec/phihist_tpcits_secm" ))->Fill (track.phi ());
2928
2937
histos.get <TH1>(HIST (" MC/primsec/etahist_tpcits_secm" ))->Fill (track.eta ());
2929
2938
} // end if ITS
2930
- } // end if TPC
2931
- } // end if secondaries from material
2939
+ } // end if TPC
2940
+ } // end if secondaries from material
2932
2941
//
2933
2942
// protons only
2934
2943
if (tpPDGCode == 2212 ) {
@@ -2995,7 +3004,7 @@ struct qaMatchEff {
2995
3004
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_prminus" ))->Fill (track.eta ());
2996
3005
}
2997
3006
} // end if ITS
2998
- } // end if TPC
3007
+ } // end if TPC
2999
3008
}
3000
3009
//
3001
3010
// pions only
@@ -3063,7 +3072,7 @@ struct qaMatchEff {
3063
3072
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_piminus" ))->Fill (track.eta ());
3064
3073
}
3065
3074
} // end if ITS
3066
- } // end if TPC
3075
+ } // end if TPC
3067
3076
//
3068
3077
// only primary pions
3069
3078
if (mcpart.isPhysicalPrimary ()) {
@@ -3076,7 +3085,7 @@ struct qaMatchEff {
3076
3085
histos.get <TH1>(HIST (" MC/PID/phihist_tpcits_pi_prim" ))->Fill (track.phi ());
3077
3086
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_pi_prim" ))->Fill (track.eta ());
3078
3087
} // end if ITS
3079
- } // end if TPC
3088
+ } // end if TPC
3080
3089
// end if primaries
3081
3090
} else if (mcpart.getProcess () == 4 ) {
3082
3091
//
@@ -3090,7 +3099,7 @@ struct qaMatchEff {
3090
3099
histos.get <TH1>(HIST (" MC/PID/phihist_tpcits_pi_secd" ))->Fill (track.phi ());
3091
3100
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_pi_secd" ))->Fill (track.eta ());
3092
3101
} // end if ITS
3093
- } // end if TPC
3102
+ } // end if TPC
3094
3103
// end if secondaries from decay
3095
3104
} else {
3096
3105
//
@@ -3104,9 +3113,9 @@ struct qaMatchEff {
3104
3113
histos.get <TH1>(HIST (" MC/PID/phihist_tpcits_pi_secm" ))->Fill (track.phi ());
3105
3114
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_pi_secm" ))->Fill (track.eta ());
3106
3115
} // end if ITS
3107
- } // end if TPC
3108
- } // end if secondaries from material //
3109
- } // end pions only
3116
+ } // end if TPC
3117
+ } // end if secondaries from material //
3118
+ } // end pions only
3110
3119
//
3111
3120
// no primary/sec-d pions
3112
3121
if (!((tpPDGCode == 211 ) && (mcpart.isPhysicalPrimary ()))) {
@@ -3130,8 +3139,8 @@ struct qaMatchEff {
3130
3139
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_nopi" ))->Fill (track.eta ());
3131
3140
histos.get <TH1>(HIST (" MC/PID/pdghist_num" ))->Fill (pdg_fill);
3132
3141
} // end if ITS
3133
- } // end if TPC
3134
- } // end if not prim/sec-d pi
3142
+ } // end if TPC
3143
+ } // end if not prim/sec-d pi
3135
3144
//
3136
3145
// kaons only
3137
3146
if (tpPDGCode == 321 ) {
@@ -3198,7 +3207,7 @@ struct qaMatchEff {
3198
3207
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_kaminus" ))->Fill (track.eta ());
3199
3208
}
3200
3209
} // end if ITS
3201
- } // end if TPC
3210
+ } // end if TPC
3202
3211
}
3203
3212
//
3204
3213
// pions and kaons together
@@ -3212,7 +3221,7 @@ struct qaMatchEff {
3212
3221
histos.get <TH1>(HIST (" MC/PID/phihist_tpcits_piK" ))->Fill (track.phi ());
3213
3222
histos.get <TH1>(HIST (" MC/PID/etahist_tpcits_piK" ))->Fill (track.eta ());
3214
3223
} // end if ITS
3215
- } // end if TPC
3224
+ } // end if TPC
3216
3225
}
3217
3226
}
3218
3227
//
0 commit comments