#include "AliMUONManuPainter.h"
#include "AliMpDCSNamer.h"
#include "AliLog.h"
#include "AliMUONContour.h"
#include "AliMUONManuContourMaker.h"
#include "AliMUONManuPadPainter.h"
#include "AliMUONPainterHelper.h"
#include "AliMUONVCalibParam.h"
#include "AliMUONVDigit.h"
#include "AliMUONVTrackerData.h"
#include "AliMpDEManager.h"
#include "AliMpManuUID.h"
#include "AliMpMotifPosition.h"
#include "AliMpMotifType.h"
#include "AliMpSlat.h"
#include "AliMpStationType.h"
#include "AliMpVMotif.h"
#include "AliMpVPadIterator.h"
#include <TArrayI.h>
#include <float.h>
ClassImp(AliMUONManuPainter)
AliMUONManuPainter::AliMUONManuPainter(TRootIOCtor* ioCtor)
: AliMUONVPainter(ioCtor),
fDetElemId(-1),
fManuId(-1)
{
}
AliMUONManuPainter::AliMUONManuPainter()
: AliMUONVPainter(),
fDetElemId(-1),
fManuId(-1)
{
}
AliMUONManuPainter::AliMUONManuPainter(const AliMUONAttPainter& att,
Int_t detElemId,
Int_t manuId)
: AliMUONVPainter("MANU"),
fDetElemId(detElemId),
fManuId(manuId)
{
SetAttributes(att);
AliMUONPainterHelper* h = AliMUONPainterHelper::Instance();
SetID(detElemId,manuId);
SetName(h->ManuName(manuId));
SetPathName(h->ManuPathName(detElemId,manuId));
AliMp::StationType stationType = AliMpDEManager::GetStationType(detElemId);
if ( stationType == AliMp::kStationTrigger )
{
AliError("Hu ho. Not supposed to be used for trigger !");
Invalidate();
return;
}
TString name = AliMUONManuContourMaker::ManuPathName(detElemId, manuId);
AliMUONContour* contour = h->GetContour(name.Data());
if (!contour)
{
AliError(Form("Could not get manuId %04d from DE %04d (name=%s)",manuId,detElemId,name.Data()));
}
SetContour(contour);
Add(new AliMUONManuPadPainter(*this,fDetElemId,fManuId));
}
AliMUONManuPainter::AliMUONManuPainter(const AliMUONManuPainter& rhs)
: AliMUONVPainter(rhs), fDetElemId(-1), fManuId(-1)
{
rhs.Copy(*this);
}
AliMUONManuPainter&
AliMUONManuPainter::operator=(const AliMUONManuPainter& rhs)
{
if ( this != &rhs )
{
rhs.Copy(*this);
}
return *this;
}
AliMUONManuPainter::~AliMUONManuPainter()
{
}
void
AliMUONManuPainter::ComputeDataRange(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t& dataMin, Double_t& dataMax) const
{
dataMin = dataMax = data.Manu(fDetElemId, fManuId, dataIndex);
}
void
AliMUONManuPainter::Copy(TObject& object) const
{
AliMUONVPainter::Copy((AliMUONVPainter&)(object));
((AliMUONManuPainter&)(object)).fDetElemId = fDetElemId;
((AliMUONManuPainter&)(object)).fManuId = fManuId;
}
TString
AliMUONManuPainter::Describe(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t, Double_t)
{
if (!data.HasManu(fDetElemId,fManuId)) return "";
Double_t value = data.Manu(fDetElemId,fManuId,dataIndex);
TString rv = AliMUONPainterHelper::Instance()->FormatValue(data.DimensionName(dataIndex).Data(),value);
if ( TString(data.GetName()).Contains("HV") )
{
rv += "\n";
AliMpDCSNamer hvNamer("TRACKER");
if ( AliMpDEManager::GetStationType(fDetElemId) == AliMp::kStation12 )
{
Int_t sector = hvNamer.ManuId2Sector(fDetElemId,fManuId);
rv += hvNamer.DCSNameFromAlias(hvNamer.DCSAliasName(fDetElemId,sector));
}
else
{
rv += hvNamer.DCSNameFromAlias(hvNamer.DCSAliasName(fDetElemId));
}
}
return rv;
}
void
AliMUONManuPainter::FillManuList(TObjArray& manuList) const
{
manuList.Add(new AliMpManuUID(fDetElemId,fManuId));
}
Bool_t
AliMUONManuPainter::IsIncluded() const
{
return ( InteractiveReadOutConfig()->Manu(fDetElemId,fManuId) > 0 );
}
void
AliMUONManuPainter::PaintArea(const AliMUONVTrackerData& data, Int_t dataIndex,
Double_t min, Double_t max)
{
if (!data.HasManu(fDetElemId,fManuId)) return;
Double_t value = data.Manu(fDetElemId,fManuId,dataIndex);
if ( value >= AliMUONVCalibParam::InvalidFloatValue() ) return;
Int_t color = AliMUONPainterHelper::Instance()->ColorFromValue(value,min,max);
PaintArea(color);
}
AliMUONAttPainter
AliMUONManuPainter::Validate(const AliMUONAttPainter& attributes) const
{
AliMUONAttPainter norm(attributes);
norm.SetValid(kFALSE);
if ( norm.IsCathodeDefined() )
{
if ( norm.IsCathode0() != Attributes().IsCathode0() ) return norm;
}
if ( norm.IsPlaneDefined() )
{
if ( norm.IsBendingPlane() != Attributes().IsBendingPlane() ) return norm;
}
norm.SetValid(kTRUE);
if ( norm.IsCathodeDefined() && !norm.IsPlaneDefined() )
{
AliMp::CathodType cathode = ( norm.IsCathode0() ? AliMp::kCath0 : AliMp::kCath1 ) ;
AliMp::PlaneType planeType = AliMpDEManager::GetPlaneType(fDetElemId,cathode);
Bool_t bending = ( planeType == AliMp::kBendingPlane );
norm.SetPlane(bending,!bending);
}
else if ( norm.IsPlaneDefined() && !norm.IsCathodeDefined() )
{
AliMp::PlaneType planeType = ( norm.IsBendingPlane() ? AliMp::kBendingPlane : AliMp::kNonBendingPlane );
AliMp::CathodType cathode = AliMpDEManager::GetCathod(fDetElemId,planeType);
Bool_t cath0 = ( cathode == AliMp::kCath0 );
norm.SetCathode(cath0,!cath0);
}
else if ( norm.IsPlaneDefined() && norm.IsCathodeDefined() )
{
AliMp::CathodType cathode = ( norm.IsCathode0() ? AliMp::kCath0 : AliMp::kCath1 ) ;
AliMp::PlaneType planeType = AliMpDEManager::GetPlaneType(fDetElemId,cathode);
Bool_t bending = ( planeType == AliMp::kBendingPlane );
if ( bending != norm.IsBendingPlane() )
{
norm.SetValid(kFALSE);
}
}
return norm;
}
AliMUONManuPainter.cxx:10 AliMUONManuPainter.cxx:11 AliMUONManuPainter.cxx:12 AliMUONManuPainter.cxx:13 AliMUONManuPainter.cxx:14 AliMUONManuPainter.cxx:15 AliMUONManuPainter.cxx:16 AliMUONManuPainter.cxx:17 AliMUONManuPainter.cxx:18 AliMUONManuPainter.cxx:19 AliMUONManuPainter.cxx:20 AliMUONManuPainter.cxx:21 AliMUONManuPainter.cxx:22 AliMUONManuPainter.cxx:23 AliMUONManuPainter.cxx:24 AliMUONManuPainter.cxx:25 AliMUONManuPainter.cxx:26 AliMUONManuPainter.cxx:27 AliMUONManuPainter.cxx:28 AliMUONManuPainter.cxx:29 AliMUONManuPainter.cxx:30 AliMUONManuPainter.cxx:31 AliMUONManuPainter.cxx:32 AliMUONManuPainter.cxx:33 AliMUONManuPainter.cxx:34 AliMUONManuPainter.cxx:35 AliMUONManuPainter.cxx:36 AliMUONManuPainter.cxx:37 AliMUONManuPainter.cxx:38 AliMUONManuPainter.cxx:39 AliMUONManuPainter.cxx:40 AliMUONManuPainter.cxx:41 AliMUONManuPainter.cxx:42 AliMUONManuPainter.cxx:43 AliMUONManuPainter.cxx:44 AliMUONManuPainter.cxx:45 AliMUONManuPainter.cxx:46 AliMUONManuPainter.cxx:47 AliMUONManuPainter.cxx:48 AliMUONManuPainter.cxx:49 AliMUONManuPainter.cxx:50 AliMUONManuPainter.cxx:51 AliMUONManuPainter.cxx:52 AliMUONManuPainter.cxx:53 AliMUONManuPainter.cxx:54 AliMUONManuPainter.cxx:55 AliMUONManuPainter.cxx:56 AliMUONManuPainter.cxx:57 AliMUONManuPainter.cxx:58 AliMUONManuPainter.cxx:59 AliMUONManuPainter.cxx:60 AliMUONManuPainter.cxx:61 AliMUONManuPainter.cxx:62 AliMUONManuPainter.cxx:63 AliMUONManuPainter.cxx:64 AliMUONManuPainter.cxx:65 AliMUONManuPainter.cxx:66 AliMUONManuPainter.cxx:67 AliMUONManuPainter.cxx:68 AliMUONManuPainter.cxx:69 AliMUONManuPainter.cxx:70 AliMUONManuPainter.cxx:71 AliMUONManuPainter.cxx:72 AliMUONManuPainter.cxx:73 AliMUONManuPainter.cxx:74 AliMUONManuPainter.cxx:75 AliMUONManuPainter.cxx:76 AliMUONManuPainter.cxx:77 AliMUONManuPainter.cxx:78 AliMUONManuPainter.cxx:79 AliMUONManuPainter.cxx:80 AliMUONManuPainter.cxx:81 AliMUONManuPainter.cxx:82 AliMUONManuPainter.cxx:83 AliMUONManuPainter.cxx:84 AliMUONManuPainter.cxx:85 AliMUONManuPainter.cxx:86 AliMUONManuPainter.cxx:87 AliMUONManuPainter.cxx:88 AliMUONManuPainter.cxx:89 AliMUONManuPainter.cxx:90 AliMUONManuPainter.cxx:91 AliMUONManuPainter.cxx:92 AliMUONManuPainter.cxx:93 AliMUONManuPainter.cxx:94 AliMUONManuPainter.cxx:95 AliMUONManuPainter.cxx:96 AliMUONManuPainter.cxx:97 AliMUONManuPainter.cxx:98 AliMUONManuPainter.cxx:99 AliMUONManuPainter.cxx:100 AliMUONManuPainter.cxx:101 AliMUONManuPainter.cxx:102 AliMUONManuPainter.cxx:103 AliMUONManuPainter.cxx:104 AliMUONManuPainter.cxx:105 AliMUONManuPainter.cxx:106 AliMUONManuPainter.cxx:107 AliMUONManuPainter.cxx:108 AliMUONManuPainter.cxx:109 AliMUONManuPainter.cxx:110 AliMUONManuPainter.cxx:111 AliMUONManuPainter.cxx:112 AliMUONManuPainter.cxx:113 AliMUONManuPainter.cxx:114 AliMUONManuPainter.cxx:115 AliMUONManuPainter.cxx:116 AliMUONManuPainter.cxx:117 AliMUONManuPainter.cxx:118 AliMUONManuPainter.cxx:119 AliMUONManuPainter.cxx:120 AliMUONManuPainter.cxx:121 AliMUONManuPainter.cxx:122 AliMUONManuPainter.cxx:123 AliMUONManuPainter.cxx:124 AliMUONManuPainter.cxx:125 AliMUONManuPainter.cxx:126 AliMUONManuPainter.cxx:127 AliMUONManuPainter.cxx:128 AliMUONManuPainter.cxx:129 AliMUONManuPainter.cxx:130 AliMUONManuPainter.cxx:131 AliMUONManuPainter.cxx:132 AliMUONManuPainter.cxx:133 AliMUONManuPainter.cxx:134 AliMUONManuPainter.cxx:135 AliMUONManuPainter.cxx:136 AliMUONManuPainter.cxx:137 AliMUONManuPainter.cxx:138 AliMUONManuPainter.cxx:139 AliMUONManuPainter.cxx:140 AliMUONManuPainter.cxx:141 AliMUONManuPainter.cxx:142 AliMUONManuPainter.cxx:143 AliMUONManuPainter.cxx:144 AliMUONManuPainter.cxx:145 AliMUONManuPainter.cxx:146 AliMUONManuPainter.cxx:147 AliMUONManuPainter.cxx:148 AliMUONManuPainter.cxx:149 AliMUONManuPainter.cxx:150 AliMUONManuPainter.cxx:151 AliMUONManuPainter.cxx:152 AliMUONManuPainter.cxx:153 AliMUONManuPainter.cxx:154 AliMUONManuPainter.cxx:155 AliMUONManuPainter.cxx:156 AliMUONManuPainter.cxx:157 AliMUONManuPainter.cxx:158 AliMUONManuPainter.cxx:159 AliMUONManuPainter.cxx:160 AliMUONManuPainter.cxx:161 AliMUONManuPainter.cxx:162 AliMUONManuPainter.cxx:163 AliMUONManuPainter.cxx:164 AliMUONManuPainter.cxx:165 AliMUONManuPainter.cxx:166 AliMUONManuPainter.cxx:167 AliMUONManuPainter.cxx:168 AliMUONManuPainter.cxx:169 AliMUONManuPainter.cxx:170 AliMUONManuPainter.cxx:171 AliMUONManuPainter.cxx:172 AliMUONManuPainter.cxx:173 AliMUONManuPainter.cxx:174 AliMUONManuPainter.cxx:175 AliMUONManuPainter.cxx:176 AliMUONManuPainter.cxx:177 AliMUONManuPainter.cxx:178 AliMUONManuPainter.cxx:179 AliMUONManuPainter.cxx:180 AliMUONManuPainter.cxx:181 AliMUONManuPainter.cxx:182 AliMUONManuPainter.cxx:183 AliMUONManuPainter.cxx:184 AliMUONManuPainter.cxx:185 AliMUONManuPainter.cxx:186 AliMUONManuPainter.cxx:187 AliMUONManuPainter.cxx:188 AliMUONManuPainter.cxx:189 AliMUONManuPainter.cxx:190 AliMUONManuPainter.cxx:191 AliMUONManuPainter.cxx:192 AliMUONManuPainter.cxx:193 AliMUONManuPainter.cxx:194 AliMUONManuPainter.cxx:195 AliMUONManuPainter.cxx:196 AliMUONManuPainter.cxx:197 AliMUONManuPainter.cxx:198 AliMUONManuPainter.cxx:199 AliMUONManuPainter.cxx:200 AliMUONManuPainter.cxx:201 AliMUONManuPainter.cxx:202 AliMUONManuPainter.cxx:203 AliMUONManuPainter.cxx:204 AliMUONManuPainter.cxx:205 AliMUONManuPainter.cxx:206 AliMUONManuPainter.cxx:207 AliMUONManuPainter.cxx:208 AliMUONManuPainter.cxx:209 AliMUONManuPainter.cxx:210 AliMUONManuPainter.cxx:211 AliMUONManuPainter.cxx:212 AliMUONManuPainter.cxx:213 AliMUONManuPainter.cxx:214 AliMUONManuPainter.cxx:215 AliMUONManuPainter.cxx:216 AliMUONManuPainter.cxx:217 AliMUONManuPainter.cxx:218 AliMUONManuPainter.cxx:219 AliMUONManuPainter.cxx:220 AliMUONManuPainter.cxx:221 AliMUONManuPainter.cxx:222 AliMUONManuPainter.cxx:223 AliMUONManuPainter.cxx:224 AliMUONManuPainter.cxx:225 AliMUONManuPainter.cxx:226 AliMUONManuPainter.cxx:227 AliMUONManuPainter.cxx:228 AliMUONManuPainter.cxx:229 AliMUONManuPainter.cxx:230 AliMUONManuPainter.cxx:231 AliMUONManuPainter.cxx:232 AliMUONManuPainter.cxx:233 AliMUONManuPainter.cxx:234 AliMUONManuPainter.cxx:235 AliMUONManuPainter.cxx:236 AliMUONManuPainter.cxx:237 AliMUONManuPainter.cxx:238 AliMUONManuPainter.cxx:239 AliMUONManuPainter.cxx:240 AliMUONManuPainter.cxx:241 AliMUONManuPainter.cxx:242 AliMUONManuPainter.cxx:243 AliMUONManuPainter.cxx:244 AliMUONManuPainter.cxx:245 AliMUONManuPainter.cxx:246 AliMUONManuPainter.cxx:247 AliMUONManuPainter.cxx:248 AliMUONManuPainter.cxx:249 AliMUONManuPainter.cxx:250 AliMUONManuPainter.cxx:251 AliMUONManuPainter.cxx:252 AliMUONManuPainter.cxx:253 AliMUONManuPainter.cxx:254 AliMUONManuPainter.cxx:255 AliMUONManuPainter.cxx:256 AliMUONManuPainter.cxx:257 AliMUONManuPainter.cxx:258 AliMUONManuPainter.cxx:259 AliMUONManuPainter.cxx:260 AliMUONManuPainter.cxx:261 AliMUONManuPainter.cxx:262 AliMUONManuPainter.cxx:263 AliMUONManuPainter.cxx:264 AliMUONManuPainter.cxx:265 AliMUONManuPainter.cxx:266 AliMUONManuPainter.cxx:267 AliMUONManuPainter.cxx:268 AliMUONManuPainter.cxx:269 AliMUONManuPainter.cxx:270 AliMUONManuPainter.cxx:271 AliMUONManuPainter.cxx:272 AliMUONManuPainter.cxx:273 AliMUONManuPainter.cxx:274 AliMUONManuPainter.cxx:275 AliMUONManuPainter.cxx:276 AliMUONManuPainter.cxx:277 AliMUONManuPainter.cxx:278 AliMUONManuPainter.cxx:279 AliMUONManuPainter.cxx:280 AliMUONManuPainter.cxx:281 AliMUONManuPainter.cxx:282 AliMUONManuPainter.cxx:283 AliMUONManuPainter.cxx:284 AliMUONManuPainter.cxx:285 AliMUONManuPainter.cxx:286 AliMUONManuPainter.cxx:287 AliMUONManuPainter.cxx:288 AliMUONManuPainter.cxx:289 AliMUONManuPainter.cxx:290 AliMUONManuPainter.cxx:291 AliMUONManuPainter.cxx:292 AliMUONManuPainter.cxx:293