#include "AliMUONChamberPainter.h"
#include "AliMUONDEPainter.h"
#include "AliMUONContour.h"
#include "AliMUONPainterHelper.h"
#include "AliMUONVCalibParam.h"
#include "AliMUONVTrackerData.h"
#include "AliMpConstants.h"
#include "AliMpDEIterator.h"
#include "AliMpDEManager.h"
#include "AliMpPlaneType.h"
#include "AliMpSegmentation.h"
#include "AliMpStationType.h"
#include "AliMpVSegmentation.h"
#include "AliMUONObjectPair.h"
#include "AliLog.h"
#include <Riostream.h>
#include <TObjString.h>
#include <TArrayI.h>
#include <cassert>
#include <float.h>
ClassImp(AliMUONChamberPainter)
AliMUONChamberPainter::AliMUONChamberPainter()
: AliMUONVPainter(),
fChamberId(-1)
{
}
AliMUONChamberPainter::AliMUONChamberPainter(TRootIOCtor* ioCtor)
: AliMUONVPainter(ioCtor),
fChamberId(-1)
{
}
AliMUONChamberPainter::AliMUONChamberPainter(const AliMUONAttPainter& att,
Int_t chamberId)
: AliMUONVPainter("Chamber"),
fChamberId(chamberId)
{
AliMUONPainterHelper* h = AliMUONPainterHelper::Instance();
AliMUONAttPainter chAtt(att);
chAtt.SetCathodeAndPlaneMutuallyExclusive(kTRUE);
SetAttributes(chAtt);
SetID(chamberId,-1);
SetName(h->ChamberName(fChamberId).Data());
SetPathName(h->ChamberPathName(fChamberId).Data());
AliMpDEIterator deIt;
deIt.First(fChamberId);
AliMUONContour* contour = h->GetContour(ContourName());
TObjArray contourArray;
while (!deIt.IsDone())
{
Int_t detElemId = deIt.CurrentDEId();
AliMUONAttPainter deAtt(att);
if ( att.IsCathodeDefined() )
{
deAtt.SetCathode(kFALSE,kFALSE);
AliMp::PlaneType planeType;
if ( att.IsCathode0() ) planeType = AliMpDEManager::GetPlaneType(detElemId,AliMp::kCath0);
else planeType = AliMpDEManager::GetPlaneType(detElemId,AliMp::kCath1);
Bool_t bending = ( planeType == AliMp::kBendingPlane );
deAtt.SetPlane(bending,!bending);
}
assert(deAtt.IsPlaneDefined());
AliMUONVPainter* painter = new AliMUONDEPainter(deAtt,detElemId);
Add(painter);
if (!contour)
{
contourArray.Add(painter->Contour());
}
deIt.Next();
}
Double_t xmin(1E9), xmax(-1E9), ymin(1E9), ymax(-1E9);
TIter next(Children());
AliMUONVPainter* painter;
while ( ( painter = static_cast<AliMUONVPainter*>(next()) ) )
{
const AliMpArea& area = painter->Area();
xmin = TMath::Min(xmin,area.LeftBorder());
xmax = TMath::Max(xmax,area.RightBorder());
ymin = TMath::Min(ymin,area.DownBorder());
ymax = TMath::Max(ymax,area.UpBorder());
}
if ( contourArray.GetLast() >= 0 )
{
contour = h->MergeContours(contourArray,ContourName());
}
SetContour(contour);
}
AliMUONChamberPainter::AliMUONChamberPainter(const AliMUONChamberPainter& rhs)
: AliMUONVPainter(rhs),
fChamberId(rhs.fChamberId)
{
rhs.Copy(*this);
}
AliMUONChamberPainter&
AliMUONChamberPainter::operator=(const AliMUONChamberPainter& rhs)
{
if ( this != &rhs )
{
rhs.Copy(*this);
}
return *this;
}
AliMUONChamberPainter::~AliMUONChamberPainter()
{
}
void
AliMUONChamberPainter::ComputeDataRange(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t& dataMin, Double_t& dataMax) const
{
dataMin = dataMax = data.Chamber(fChamberId, dataIndex);
}
void
AliMUONChamberPainter::Copy(TObject& object) const
{
AliMUONVPainter::Copy((AliMUONVPainter&)(object));
((AliMUONChamberPainter&)(object)).fChamberId = fChamberId;
}
TString
AliMUONChamberPainter::Describe(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t, Double_t)
{
if (!data.HasChamber(fChamberId)) return "";
Double_t value = data.Chamber(fChamberId,dataIndex);
return AliMUONPainterHelper::Instance()->FormatValue(data.DimensionName(dataIndex).Data(),value);
}
Bool_t
AliMUONChamberPainter::IsIncluded() const
{
return ( InteractiveReadOutConfig()->Chamber(fChamberId) > 0 );
}
void
AliMUONChamberPainter::PaintArea(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t min, Double_t max)
{
if (!data.HasChamber(fChamberId)) return;
Double_t value = data.Chamber(fChamberId,dataIndex);
if ( value >= AliMUONVCalibParam::InvalidFloatValue() ) return;
Int_t color = AliMUONPainterHelper::Instance()->ColorFromValue(value,min,max);
PaintArea(color);
}
AliMUONAttPainter
AliMUONChamberPainter::Validate(const AliMUONAttPainter& attributes) const
{
AliMUONAttPainter norm(attributes);
if ( norm.IsCathodeDefined() && norm.IsPlaneDefined() )
{
norm.SetValid(kFALSE);
}
if ( !norm.IsCathodeDefined() && !norm.IsPlaneDefined() )
{
norm.SetValid(kFALSE);
}
return norm;
}
AliMUONChamberPainter.cxx:1 AliMUONChamberPainter.cxx:2 AliMUONChamberPainter.cxx:3 AliMUONChamberPainter.cxx:4 AliMUONChamberPainter.cxx:5 AliMUONChamberPainter.cxx:6 AliMUONChamberPainter.cxx:7 AliMUONChamberPainter.cxx:8 AliMUONChamberPainter.cxx:9 AliMUONChamberPainter.cxx:10 AliMUONChamberPainter.cxx:11 AliMUONChamberPainter.cxx:12 AliMUONChamberPainter.cxx:13 AliMUONChamberPainter.cxx:14 AliMUONChamberPainter.cxx:15 AliMUONChamberPainter.cxx:16 AliMUONChamberPainter.cxx:17 AliMUONChamberPainter.cxx:18 AliMUONChamberPainter.cxx:19 AliMUONChamberPainter.cxx:20 AliMUONChamberPainter.cxx:21 AliMUONChamberPainter.cxx:22 AliMUONChamberPainter.cxx:23 AliMUONChamberPainter.cxx:24 AliMUONChamberPainter.cxx:25 AliMUONChamberPainter.cxx:26 AliMUONChamberPainter.cxx:27 AliMUONChamberPainter.cxx:28 AliMUONChamberPainter.cxx:29 AliMUONChamberPainter.cxx:30 AliMUONChamberPainter.cxx:31 AliMUONChamberPainter.cxx:32 AliMUONChamberPainter.cxx:33 AliMUONChamberPainter.cxx:34 AliMUONChamberPainter.cxx:35 AliMUONChamberPainter.cxx:36 AliMUONChamberPainter.cxx:37 AliMUONChamberPainter.cxx:38 AliMUONChamberPainter.cxx:39 AliMUONChamberPainter.cxx:40 AliMUONChamberPainter.cxx:41 AliMUONChamberPainter.cxx:42 AliMUONChamberPainter.cxx:43 AliMUONChamberPainter.cxx:44 AliMUONChamberPainter.cxx:45 AliMUONChamberPainter.cxx:46 AliMUONChamberPainter.cxx:47 AliMUONChamberPainter.cxx:48 AliMUONChamberPainter.cxx:49 AliMUONChamberPainter.cxx:50 AliMUONChamberPainter.cxx:51 AliMUONChamberPainter.cxx:52 AliMUONChamberPainter.cxx:53 AliMUONChamberPainter.cxx:54 AliMUONChamberPainter.cxx:55 AliMUONChamberPainter.cxx:56 AliMUONChamberPainter.cxx:57 AliMUONChamberPainter.cxx:58 AliMUONChamberPainter.cxx:59 AliMUONChamberPainter.cxx:60 AliMUONChamberPainter.cxx:61 AliMUONChamberPainter.cxx:62 AliMUONChamberPainter.cxx:63 AliMUONChamberPainter.cxx:64 AliMUONChamberPainter.cxx:65 AliMUONChamberPainter.cxx:66 AliMUONChamberPainter.cxx:67 AliMUONChamberPainter.cxx:68 AliMUONChamberPainter.cxx:69 AliMUONChamberPainter.cxx:70 AliMUONChamberPainter.cxx:71 AliMUONChamberPainter.cxx:72 AliMUONChamberPainter.cxx:73 AliMUONChamberPainter.cxx:74 AliMUONChamberPainter.cxx:75 AliMUONChamberPainter.cxx:76 AliMUONChamberPainter.cxx:77 AliMUONChamberPainter.cxx:78 AliMUONChamberPainter.cxx:79 AliMUONChamberPainter.cxx:80 AliMUONChamberPainter.cxx:81 AliMUONChamberPainter.cxx:82 AliMUONChamberPainter.cxx:83 AliMUONChamberPainter.cxx:84 AliMUONChamberPainter.cxx:85 AliMUONChamberPainter.cxx:86 AliMUONChamberPainter.cxx:87 AliMUONChamberPainter.cxx:88 AliMUONChamberPainter.cxx:89 AliMUONChamberPainter.cxx:90 AliMUONChamberPainter.cxx:91 AliMUONChamberPainter.cxx:92 AliMUONChamberPainter.cxx:93 AliMUONChamberPainter.cxx:94 AliMUONChamberPainter.cxx:95 AliMUONChamberPainter.cxx:96 AliMUONChamberPainter.cxx:97 AliMUONChamberPainter.cxx:98 AliMUONChamberPainter.cxx:99 AliMUONChamberPainter.cxx:100 AliMUONChamberPainter.cxx:101 AliMUONChamberPainter.cxx:102 AliMUONChamberPainter.cxx:103 AliMUONChamberPainter.cxx:104 AliMUONChamberPainter.cxx:105 AliMUONChamberPainter.cxx:106 AliMUONChamberPainter.cxx:107 AliMUONChamberPainter.cxx:108 AliMUONChamberPainter.cxx:109 AliMUONChamberPainter.cxx:110 AliMUONChamberPainter.cxx:111 AliMUONChamberPainter.cxx:112 AliMUONChamberPainter.cxx:113 AliMUONChamberPainter.cxx:114 AliMUONChamberPainter.cxx:115 AliMUONChamberPainter.cxx:116 AliMUONChamberPainter.cxx:117 AliMUONChamberPainter.cxx:118 AliMUONChamberPainter.cxx:119 AliMUONChamberPainter.cxx:120 AliMUONChamberPainter.cxx:121 AliMUONChamberPainter.cxx:122 AliMUONChamberPainter.cxx:123 AliMUONChamberPainter.cxx:124 AliMUONChamberPainter.cxx:125 AliMUONChamberPainter.cxx:126 AliMUONChamberPainter.cxx:127 AliMUONChamberPainter.cxx:128 AliMUONChamberPainter.cxx:129 AliMUONChamberPainter.cxx:130 AliMUONChamberPainter.cxx:131 AliMUONChamberPainter.cxx:132 AliMUONChamberPainter.cxx:133 AliMUONChamberPainter.cxx:134 AliMUONChamberPainter.cxx:135 AliMUONChamberPainter.cxx:136 AliMUONChamberPainter.cxx:137 AliMUONChamberPainter.cxx:138 AliMUONChamberPainter.cxx:139 AliMUONChamberPainter.cxx:140 AliMUONChamberPainter.cxx:141 AliMUONChamberPainter.cxx:142 AliMUONChamberPainter.cxx:143 AliMUONChamberPainter.cxx:144 AliMUONChamberPainter.cxx:145 AliMUONChamberPainter.cxx:146 AliMUONChamberPainter.cxx:147 AliMUONChamberPainter.cxx:148 AliMUONChamberPainter.cxx:149 AliMUONChamberPainter.cxx:150 AliMUONChamberPainter.cxx:151 AliMUONChamberPainter.cxx:152 AliMUONChamberPainter.cxx:153 AliMUONChamberPainter.cxx:154 AliMUONChamberPainter.cxx:155 AliMUONChamberPainter.cxx:156 AliMUONChamberPainter.cxx:157 AliMUONChamberPainter.cxx:158 AliMUONChamberPainter.cxx:159 AliMUONChamberPainter.cxx:160 AliMUONChamberPainter.cxx:161 AliMUONChamberPainter.cxx:162 AliMUONChamberPainter.cxx:163 AliMUONChamberPainter.cxx:164 AliMUONChamberPainter.cxx:165 AliMUONChamberPainter.cxx:166 AliMUONChamberPainter.cxx:167 AliMUONChamberPainter.cxx:168 AliMUONChamberPainter.cxx:169 AliMUONChamberPainter.cxx:170 AliMUONChamberPainter.cxx:171 AliMUONChamberPainter.cxx:172 AliMUONChamberPainter.cxx:173 AliMUONChamberPainter.cxx:174 AliMUONChamberPainter.cxx:175 AliMUONChamberPainter.cxx:176 AliMUONChamberPainter.cxx:177 AliMUONChamberPainter.cxx:178 AliMUONChamberPainter.cxx:179 AliMUONChamberPainter.cxx:180 AliMUONChamberPainter.cxx:181 AliMUONChamberPainter.cxx:182 AliMUONChamberPainter.cxx:183 AliMUONChamberPainter.cxx:184 AliMUONChamberPainter.cxx:185 AliMUONChamberPainter.cxx:186 AliMUONChamberPainter.cxx:187 AliMUONChamberPainter.cxx:188 AliMUONChamberPainter.cxx:189 AliMUONChamberPainter.cxx:190 AliMUONChamberPainter.cxx:191 AliMUONChamberPainter.cxx:192 AliMUONChamberPainter.cxx:193 AliMUONChamberPainter.cxx:194 AliMUONChamberPainter.cxx:195 AliMUONChamberPainter.cxx:196 AliMUONChamberPainter.cxx:197 AliMUONChamberPainter.cxx:198 AliMUONChamberPainter.cxx:199 AliMUONChamberPainter.cxx:200 AliMUONChamberPainter.cxx:201 AliMUONChamberPainter.cxx:202 AliMUONChamberPainter.cxx:203 AliMUONChamberPainter.cxx:204 AliMUONChamberPainter.cxx:205 AliMUONChamberPainter.cxx:206 AliMUONChamberPainter.cxx:207 AliMUONChamberPainter.cxx:208 AliMUONChamberPainter.cxx:209 AliMUONChamberPainter.cxx:210 AliMUONChamberPainter.cxx:211 AliMUONChamberPainter.cxx:212 AliMUONChamberPainter.cxx:213 AliMUONChamberPainter.cxx:214 AliMUONChamberPainter.cxx:215 AliMUONChamberPainter.cxx:216 AliMUONChamberPainter.cxx:217 AliMUONChamberPainter.cxx:218 AliMUONChamberPainter.cxx:219 AliMUONChamberPainter.cxx:220 AliMUONChamberPainter.cxx:221 AliMUONChamberPainter.cxx:222 AliMUONChamberPainter.cxx:223 AliMUONChamberPainter.cxx:224 AliMUONChamberPainter.cxx:225 AliMUONChamberPainter.cxx:226 AliMUONChamberPainter.cxx:227 AliMUONChamberPainter.cxx:228 AliMUONChamberPainter.cxx:229 AliMUONChamberPainter.cxx:230 AliMUONChamberPainter.cxx:231 AliMUONChamberPainter.cxx:232 AliMUONChamberPainter.cxx:233 AliMUONChamberPainter.cxx:234 AliMUONChamberPainter.cxx:235 AliMUONChamberPainter.cxx:236 AliMUONChamberPainter.cxx:237 AliMUONChamberPainter.cxx:238 AliMUONChamberPainter.cxx:239 AliMUONChamberPainter.cxx:240 AliMUONChamberPainter.cxx:241 AliMUONChamberPainter.cxx:242 AliMUONChamberPainter.cxx:243 AliMUONChamberPainter.cxx:244 AliMUONChamberPainter.cxx:245 AliMUONChamberPainter.cxx:246 AliMUONChamberPainter.cxx:247 AliMUONChamberPainter.cxx:248 AliMUONChamberPainter.cxx:249 AliMUONChamberPainter.cxx:250 AliMUONChamberPainter.cxx:251 AliMUONChamberPainter.cxx:252 AliMUONChamberPainter.cxx:253 AliMUONChamberPainter.cxx:254