@@ -148,29 +148,57 @@ void TrackletsTask::buildHistograms()
148148 getObjectsManager ()->startPublishing (mTrackletPositionRaw );
149149 mTrackletsPerEvent = new TH1F (" trackletsperevent" , " Number of Tracklets per event;Tracklets in Event;Counts" , 25000 , 0 , 25000 );
150150 getObjectsManager ()->startPublishing (mTrackletsPerEvent );
151- mTrackletsPerEvent2D = new TH2F (" trackletsperevent2d" , " Tracklets distribution in half-chambers;Sector_Side;Stack_Side;Number of tracklets per half-chamber" , 36 , 0 , 36 , 30 , 0 , 30 );
152- getObjectsManager ()->startPublishing (mTrackletsPerEvent2D );
153- getObjectsManager ()->setDefaultDrawOptions (" trackletsperevent2d" , " COLZ" );
154- getObjectsManager ()->setDisplayHint (mTrackletsPerEvent2D ->GetName (), " logz" );
155- mTrackletsPerEvent2D ->GetXaxis ()->SetTitle (" Sector_Side" );
156- mTrackletsPerEvent2D ->GetXaxis ()->CenterTitle (kTRUE );
157- mTrackletsPerEvent2D ->GetYaxis ()->SetTitle (" Stack_Layer" );
158- mTrackletsPerEvent2D ->GetYaxis ()->CenterTitle (kTRUE );
151+ mTrackletsPerHC2D = new TH2F (" trackletsperHC2D" , " Tracklets distribution in half-chambers;Sector_Side;Stack_Side" , 36 , 0 , 36 , 30 , 0 , 30 );
152+ mTrackletsPerHC2D ->SetStats (0 );
153+ mTrackletsPerHC2D ->GetXaxis ()->SetTitle (" Sector_Side" );
154+ mTrackletsPerHC2D ->GetXaxis ()->CenterTitle (kTRUE );
155+ mTrackletsPerHC2D ->GetYaxis ()->SetTitle (" Stack_Layer" );
156+ mTrackletsPerHC2D ->GetYaxis ()->CenterTitle (kTRUE );
159157 for (int s = 0 ; s < o2::trd::constants::NSTACK ; ++s) {
160158 for (int l = 0 ; l < o2::trd::constants::NLAYER ; ++l) {
161159 std::string label = fmt::format (" {0}_{1}" , s, l);
162160 int pos = s * o2::trd::constants::NLAYER + l + 1 ;
163- mTrackletsPerEvent2D ->GetYaxis ()->SetBinLabel (pos, label.c_str ());
161+ mTrackletsPerHC2D ->GetYaxis ()->SetBinLabel (pos, label.c_str ());
164162 }
165163 }
166164 for (int sm = 0 ; sm < o2::trd::constants::NSECTOR ; ++sm) {
167165 for (int side = 0 ; side < 2 ; ++side) {
168166 std::string label = fmt::format (" {0}_{1}" , sm, side == 0 ? " A" : " B" );
169167 int pos = sm * 2 + side + 1 ;
170- mTrackletsPerEvent2D ->GetXaxis ()->SetBinLabel (pos, label.c_str ());
168+ mTrackletsPerHC2D ->GetXaxis ()->SetBinLabel (pos, label.c_str ());
171169 }
172170 }
173171
172+ // Mask known inactive halfchambers in the active chamber map
173+ TLine* line[6 ];
174+ std::pair<int , int > x, y;
175+ for (int iHC = 0 ; iHC < o2::trd::constants::NCHAMBER * 2 ; ++iHC) {
176+ if (mChamberStatus != nullptr ) {
177+ if (mChamberStatus ->isMasked (iHC)) {
178+ int stackLayer = o2::trd::HelperMethods::getStack (iHC / 2 ) * o2::trd::constants::NLAYER + o2::trd::HelperMethods::getLayer (iHC / 2 );
179+ int sectorSide = (iHC / o2::trd::constants::NHCPERSEC ) * 2 + (iHC % 2 );
180+ x.first = sectorSide;
181+ x.second = sectorSide + 1 ;
182+ y.first = stackLayer;
183+ y.second = stackLayer + 1 ;
184+
185+ line[0 ] = new TLine (x.first , y.first , x.second , y.second );
186+ line[1 ] = new TLine (x.second , y.first , x.first , y.second );
187+ line[2 ] = new TLine (x.first , y.first , x.second , y.first );
188+ line[3 ] = new TLine (x.first , y.second , x.second , y.second );
189+ line[4 ] = new TLine (x.first , y.first , x.first , y.second );
190+ line[5 ] = new TLine (x.second , y.first , x.second , y.second );
191+ for (int i = 0 ; i < 6 ; ++i) {
192+ line[i]->SetLineColor (kBlack );
193+ mTrackletsPerHC2D ->GetListOfFunctions ()->Add (line[i]);
194+ }
195+ }
196+ }
197+ }
198+ getObjectsManager ()->startPublishing (mTrackletsPerHC2D );
199+ getObjectsManager ()->setDefaultDrawOptions (" trackletsperHC2D" , " COLZ" );
200+ getObjectsManager ()->setDisplayHint (mTrackletsPerHC2D ->GetName (), " logz" );
201+
174202 for (Int_t sm = 0 ; sm < o2::trd::constants::NSECTOR ; ++sm) {
175203 std::string label = fmt::format (" TrackletHCMCMnoise_{0}" , sm);
176204 std::string title = fmt::format (" MCM in Tracklets data stream for sector {0} noise in;mcm in rob in layer;ROB in stack" , sm);
@@ -413,7 +441,7 @@ void TrackletsTask::monitorData(o2::framework::ProcessingContext& ctx)
413441 int hcid = tracklets[currenttracklet].getHCID ();
414442 int stackLayer = o2::trd::HelperMethods::getStack (hcid / 2 ) * o2::trd::constants::NLAYER + o2::trd::HelperMethods::getLayer (hcid / 2 );
415443 int sectorSide = (hcid / o2::trd::constants::NHCPERSEC ) * 2 + (hcid % 2 );
416- mTrackletsPerEvent2D ->Fill (sectorSide, stackLayer);
444+ mTrackletsPerHC2D ->Fill (sectorSide, stackLayer);
417445 // 8 rob x 16 mcm each per chamber
418446 // 5 stack(y), 6 layers(x)
419447 // y=stack_rob, x=layer_mcm
@@ -488,7 +516,7 @@ void TrackletsTask::reset()
488516 mTrackletPosition ->Reset ();
489517 mTrackletPositionRaw ->Reset ();
490518 mTrackletsPerEvent ->Reset ();
491- mTrackletsPerEvent2D ->Reset ();
519+ mTrackletsPerHC2D ->Reset ();
492520 for (auto h : moHCMCMn) {
493521 h->Reset ();
494522 }
0 commit comments