88// In applying this license CERN does not waive the privileges and immunities
99// granted to it by virtue of its status as an Intergovernmental Organization
1010// or submit itself to any jurisdiction.
11- // /
12- // / \brief Fill a table with data froma root tree.
13- // / \author
14- // / \since
1511
16- #include " tableHMPID .h"
12+ #include " tableHMPIDPbPb .h"
1713
1814#include < Framework/AnalysisTask.h>
1915#include < Framework/runDataProcessing.h>
@@ -31,7 +27,7 @@ float distance2D(float x1, float y1, float x2, float y2)
3127using namespace o2 ;
3228using namespace o2 ::framework;
3329
34- struct deuteronCS {
30+ struct HmpidDeuteron {
3531 HistogramRegistry registryDA{" registryDA" , {}, OutputObjHandlingPolicy::AnalysisObject};
3632
3733 Configurable<float > nsigmaTPCMin{" nsigmaTPCMin" , -3.0 , " nsigmaTPCMin" };
@@ -92,120 +88,99 @@ struct deuteronCS {
9288 registryDA.add (" hmpidCkovvsMom" , " hmpidCkovvsMom" , kTH2F , {{500 , 0 , 10 ., " #it{p} (GeV/#it{c})" }, {800 , 0 ., 0.8 , " #theta_{Ch} (rad)" }});
9389 }
9490
95- void process (aod::HMPID_analysis const & hmpidtable )
91+ void process (aod::HmpidAnalysisPbPb const & hmpidTable )
9692 {
97-
98- for (auto & hmpid : hmpidtable) {
93+ for (const auto & hmpid : hmpidTable) {
9994
10095 // filters on primary tracks
101- if (hmpid.itsNcluster () < minReqClusterITS)
96+ if (hmpid.itsNCluster () < minReqClusterITS)
10297 continue ;
103- if (hmpid.tpcNcluster () < minTPCnClsFound)
98+ if (hmpid.tpcNCluster () < minTPCnClsFound)
10499 continue ;
105100 if (hmpid.tpcNClsCrossedRows () < minNCrossedRowsTPC)
106101 continue ;
107102 if (hmpid.tpcChi2 () > maxChi2TPC)
108103 continue ;
109104 if (hmpid.itsChi2 () > maxChi2ITS)
110105 continue ;
111- if (TMath::Abs (hmpid.dcaxy ()) > maxDCAxy)
106+ if (TMath::Abs (hmpid.dcaXY ()) > maxDCAxy)
112107 continue ;
113- if (TMath::Abs (hmpid.dcaz ()) > maxDCAz)
108+ if (TMath::Abs (hmpid.dcaZ ()) > maxDCAz)
114109 continue ;
115110
116111 // plots nsigma before cuts
117- if (hmpid.momentumHMPID () > 0 ) {
118- registryDA.fill (HIST (" nSigmaTPC_vs_momHMPID_noCut_DePos" ), fabs (hmpid.momentumHMPID ()), hmpid.tpcNsigmaDe ());
119- registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_noCut_DePos" ), fabs (hmpid.momentumHMPID ()), hmpid.tofNsigmaDe ());
112+ if (hmpid.momentumHmpid () > 0 ) {
113+ registryDA.fill (HIST (" nSigmaTPC_vs_momHMPID_noCut_DePos" ), std:: fabs (hmpid.momentumHmpid ()), hmpid.tpcNSigmaDe ());
114+ registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_noCut_DePos" ), std:: fabs (hmpid.momentumHmpid ()), hmpid.tofNSigmaDe ());
120115 }
121116
122- if (hmpid.momentumHMPID () < 0 ) {
123- registryDA.fill (HIST (" nSigmaTPC_vs_momHMPID_noCut_DeNeg" ), fabs (hmpid.momentumHMPID ()), hmpid.tpcNsigmaDe ());
124- registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_noCut_DeNeg" ), fabs (hmpid.momentumHMPID ()), hmpid.tofNsigmaDe ());
117+ if (hmpid.momentumHmpid () < 0 ) {
118+ registryDA.fill (HIST (" nSigmaTPC_vs_momHMPID_noCut_DeNeg" ), std:: fabs (hmpid.momentumHmpid ()), hmpid.tpcNSigmaDe ());
119+ registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_noCut_DeNeg" ), std:: fabs (hmpid.momentumHmpid ()), hmpid.tofNSigmaDe ());
125120 }
126121
127- // //////////////////////////////////////////////////////////////////////////////////////////////////////////////
128- // deuteron candidate
129- if (hmpid.tpcNsigmaDe () < nsigmaTPCMin)
130- continue ;
131- if (hmpid.tpcNsigmaDe () > nsigmaTPCMax)
122+ // deuteron candidate cuts
123+ if (hmpid.tpcNSigmaDe () < nsigmaTPCMin || hmpid.tpcNSigmaDe () > nsigmaTPCMax)
132124 continue ;
133125
134- // post cut tpc
135- if ( hmpid.momentumHMPID () > 0 ) {
136- registryDA. fill ( HIST ( " nSigmaTPC_vs_momHMPID_Cut_DePos " ), fabs (hmpid. momentumHMPID ()), hmpid. tpcNsigmaDe ());
137- }
126+ if (hmpid. momentumHmpid () > 0 )
127+ registryDA. fill ( HIST ( " nSigmaTPC_vs_momHMPID_Cut_DePos " ), std::fabs ( hmpid.momentumHmpid ()), hmpid. tpcNSigmaDe ());
128+ else
129+ registryDA. fill ( HIST ( " nSigmaTPC_vs_momHMPID_Cut_DeNeg " ), std::fabs (hmpid. momentumHmpid ()), hmpid. tpcNSigmaDe ());
138130
139- if (hmpid.momentumHMPID () < 0 ) {
140- registryDA.fill (HIST (" nSigmaTPC_vs_momHMPID_Cut_DeNeg" ), fabs (hmpid.momentumHMPID ()), hmpid.tpcNsigmaDe ());
141- }
142-
143- if (hmpid.tofNsigmaDe () < nsigmaTOFMin)
144- continue ;
145- if (hmpid.tofNsigmaDe () > nsigmaTOFMax)
131+ if (hmpid.tofNSigmaDe () < nsigmaTOFMin || hmpid.tofNSigmaDe () > nsigmaTOFMax)
146132 continue ;
147133
148- // plots nsigma after cuts
149- if (hmpid.momentumHMPID () > 0 ) {
150- registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_Cut_DePos" ), fabs (hmpid.momentumHMPID ()), hmpid.tofNsigmaDe ());
151- }
152-
153- if (hmpid.momentumHMPID () < 0 ) {
154- registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_Cut_DeNeg" ), fabs (hmpid.momentumHMPID ()), hmpid.tofNsigmaDe ());
155- }
134+ if (hmpid.momentumHmpid () > 0 )
135+ registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_Cut_DePos" ), std::fabs (hmpid.momentumHmpid ()), hmpid.tofNSigmaDe ());
136+ else
137+ registryDA.fill (HIST (" nSigmaTOF_vs_momHMPID_Cut_DeNeg" ), std::fabs (hmpid.momentumHmpid ()), hmpid.tofNSigmaDe ());
156138
157139 // plot changle vs p
158- registryDA.fill (HIST (" hmpidCkovvsMom" ), hmpid.momentumHMPID (), hmpid.chAngle ());
159-
160- // absorbers are considered
161- bool hmpidAbs8cm = true ;
162- bool hmpidAbs4cm = true ;
140+ registryDA.fill (HIST (" hmpidCkovvsMom" ), hmpid.momentumHmpid (), hmpid.chAngle ());
163141
164- const float dx = hmpid.xtrack () - hmpid.xmip ();
165- const float dy = hmpid.ytrack () - hmpid.ymip ();
166- const float dr = sqrt (dx * dx + dy * dy);
142+ // absorbers
143+ const float dx = hmpid.xTrack () - hmpid.xMip ();
144+ const float dy = hmpid.yTrack () - hmpid.yMip ();
145+ const float dr = TMath::Sqrt (dx * dx + dy * dy);
167146
168- // Fill histograms for deuterons
169- // sign of HMPID momentum discriminates charge sign of the particle
170- if (hmpid.momentumHMPID () > 0 ) {
171- registryDA.fill (HIST (" De_Pos_momentum" ), hmpid.momentumTrack (), fabs (hmpid.momentumHMPID ()));
147+ int abs4cm = 2 , abs8cm = 4 ;
148+ bool hmpidAbs8cm = true , hmpidAbs4cm = true ;
172149
173- if (hmpidAbs8cm && hmpid.chamber () == 4 ) {
174- registryDA.fill (HIST (" incomingDe_Pos_8cm" ), fabs (hmpid.momentumHMPID ()));
175- registryDA.fill (HIST (" survivingDe_Pos_8cm" ), fabs (hmpid.momentumHMPID ()), dr);
176- registryDA.fill (HIST (" De_Pos_Q_8cm" ), fabs (hmpid.momentumHMPID ()), hmpid.chargeMIP ());
177- registryDA.fill (HIST (" De_Pos_ClsSize_8cm" ), fabs (hmpid.momentumHMPID ()), hmpid.clustersize ());
150+ if (hmpid.momentumHmpid () > 0 ) {
151+ registryDA.fill (HIST (" De_Pos_momentum" ), hmpid.momentumTrack (), std::fabs (hmpid.momentumHmpid ()));
178152
153+ if (hmpidAbs8cm && hmpid.chamber () == abs8cm) {
154+ registryDA.fill (HIST (" incomingDe_Pos_8cm" ), std::fabs (hmpid.momentumHmpid ()));
155+ registryDA.fill (HIST (" survivingDe_Pos_8cm" ), std::fabs (hmpid.momentumHmpid ()), dr);
156+ registryDA.fill (HIST (" De_Pos_Q_8cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.chargeMip ());
157+ registryDA.fill (HIST (" De_Pos_ClsSize_8cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.clusterSize ());
179158 registryDA.fill (HIST (" De_Pos_deltaR_8cm" ), dr);
180159 }
181- if (hmpidAbs4cm && hmpid.chamber () == 2 ) {
182- registryDA.fill (HIST (" incomingDe_Pos_4cm" ), fabs (hmpid.momentumHMPID ()));
183- registryDA.fill (HIST (" survivingDe_Pos_4cm" ), fabs (hmpid.momentumHMPID ()), dr);
184- registryDA.fill (HIST (" De_Pos_Q_4cm" ), fabs (hmpid.momentumHMPID ()), hmpid.chargeMIP ());
185- registryDA.fill (HIST (" De_Pos_ClsSize_4cm" ), fabs (hmpid.momentumHMPID ()), hmpid.clustersize ());
186-
160+ if (hmpidAbs4cm && hmpid.chamber () == abs4cm) {
161+ registryDA.fill (HIST (" incomingDe_Pos_4cm" ), std::fabs (hmpid.momentumHmpid ()));
162+ registryDA.fill (HIST (" survivingDe_Pos_4cm" ), std::fabs (hmpid.momentumHmpid ()), dr);
163+ registryDA.fill (HIST (" De_Pos_Q_4cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.chargeMip ());
164+ registryDA.fill (HIST (" De_Pos_ClsSize_4cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.clusterSize ());
187165 registryDA.fill (HIST (" De_Pos_deltaR_4cm" ), dr);
188166 }
189167 }
190168
191- // Fill Histograms for Negative Deuterons
192- if (hmpid.momentumHMPID () < 0 ) {
193- registryDA.fill (HIST (" De_Neg_momentum" ), hmpid.momentumTrack (), fabs (hmpid.momentumHMPID ()));
194-
195- if (hmpidAbs8cm && hmpid.chamber () == 4 ) {
196- registryDA.fill (HIST (" incomingDe_Neg_8cm" ), fabs (hmpid.momentumHMPID ()));
197- registryDA.fill (HIST (" survivingDe_Neg_8cm" ), fabs (hmpid.momentumHMPID ()), dr);
198- registryDA.fill (HIST (" De_Neg_Q_8cm" ), fabs (hmpid.momentumHMPID ()), hmpid.chargeMIP ());
199- registryDA.fill (HIST (" De_Neg_ClsSize_8cm" ), fabs (hmpid.momentumHMPID ()), hmpid.clustersize ());
169+ if (hmpid.momentumHmpid () < 0 ) {
170+ registryDA.fill (HIST (" De_Neg_momentum" ), hmpid.momentumTrack (), std::fabs (hmpid.momentumHmpid ()));
200171
172+ if (hmpidAbs8cm && hmpid.chamber () == abs8cm) {
173+ registryDA.fill (HIST (" incomingDe_Neg_8cm" ), std::fabs (hmpid.momentumHmpid ()));
174+ registryDA.fill (HIST (" survivingDe_Neg_8cm" ), std::fabs (hmpid.momentumHmpid ()), dr);
175+ registryDA.fill (HIST (" De_Neg_Q_8cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.chargeMip ());
176+ registryDA.fill (HIST (" De_Neg_ClsSize_8cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.clusterSize ());
201177 registryDA.fill (HIST (" De_Neg_deltaR_8cm" ), dr);
202178 }
203- if (hmpidAbs4cm && hmpid.chamber () == 2 ) {
204- registryDA.fill (HIST (" incomingDe_Neg_4cm" ), fabs (hmpid.momentumHMPID ()));
205- registryDA.fill (HIST (" survivingDe_Neg_4cm" ), fabs (hmpid.momentumHMPID ()), dr);
206- registryDA.fill (HIST (" De_Neg_Q_4cm" ), fabs (hmpid.momentumHMPID ()), hmpid.chargeMIP ());
207- registryDA.fill (HIST (" De_Neg_ClsSize_4cm" ), fabs (hmpid.momentumHMPID ()), hmpid.clustersize ());
208-
179+ if (hmpidAbs4cm && hmpid.chamber () == abs4cm) {
180+ registryDA.fill (HIST (" incomingDe_Neg_4cm" ), std::fabs (hmpid.momentumHmpid ()));
181+ registryDA.fill (HIST (" survivingDe_Neg_4cm" ), std::fabs (hmpid.momentumHmpid ()), dr);
182+ registryDA.fill (HIST (" De_Neg_Q_4cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.chargeMip ());
183+ registryDA.fill (HIST (" De_Neg_ClsSize_4cm" ), std::fabs (hmpid.momentumHmpid ()), hmpid.clusterSize ());
209184 registryDA.fill (HIST (" De_Neg_deltaR_4cm" ), dr);
210185 }
211186 }
@@ -216,6 +191,6 @@ struct deuteronCS {
216191WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
217192{
218193 return WorkflowSpec{
219- adaptAnalysisTask<deuteronCS >(cfgc),
194+ adaptAnalysisTask<HmpidDeuteron >(cfgc),
220195 };
221196}
0 commit comments