#include "AliMUONTriggerEfficiencyCells.h"
#include "AliLog.h"
#include "AliMpConstants.h"
#include "TH1.h"
#include "TList.h"
#include "TFile.h"
#include <fstream>
#include <cassert>
ClassImp(AliMUONTriggerEfficiencyCells)
AliMUONTriggerEfficiencyCells::AliMUONTriggerEfficiencyCells()
:
TObject(),
fCountHistoList(0x0),
fNoCountHistoList(0x0),
fFiredStrips(0x0)
{
CheckConstants();
ResetHistos();
}
AliMUONTriggerEfficiencyCells::AliMUONTriggerEfficiencyCells(const Char_t* filename,
const Char_t* listname)
:
TObject(),
fCountHistoList(0x0),
fNoCountHistoList(0x0),
fFiredStrips(0x0)
{
CheckConstants();
ResetHistos();
ReadFile(filename, listname);
}
AliMUONTriggerEfficiencyCells::AliMUONTriggerEfficiencyCells(TList *countHistoList)
:
TObject(),
fCountHistoList(countHistoList),
fNoCountHistoList(0x0),
fFiredStrips(0x0)
{
CheckConstants();
ResetHistos();
}
AliMUONTriggerEfficiencyCells::AliMUONTriggerEfficiencyCells(const AliMUONTriggerEfficiencyCells& other)
:
TObject(other),
fCountHistoList(other.fCountHistoList),
fNoCountHistoList(other.fNoCountHistoList),
fFiredStrips(other.fFiredStrips)
{
for(Int_t chCath=0; chCath<fgkNplanes; chCath++){
fBoardEfficiency[chCath] = other.fBoardEfficiency[chCath];
fSlatEfficiency[chCath] = other.fSlatEfficiency[chCath];
}
}
AliMUONTriggerEfficiencyCells& AliMUONTriggerEfficiencyCells::operator=(const AliMUONTriggerEfficiencyCells& other)
{
if (this == &other)
return *this;
for(Int_t chCath=0; chCath<fgkNplanes; chCath++){
fBoardEfficiency[chCath] = other.fBoardEfficiency[chCath];
fSlatEfficiency[chCath] = other.fSlatEfficiency[chCath];
}
fCountHistoList = other.fCountHistoList;
fNoCountHistoList = other.fNoCountHistoList;
fFiredStrips = other.fFiredStrips;
return *this;
}
AliMUONTriggerEfficiencyCells::~AliMUONTriggerEfficiencyCells()
{
ResetHistos(kTRUE);
delete fCountHistoList;
delete fNoCountHistoList;
delete fFiredStrips;
}
void AliMUONTriggerEfficiencyCells::CheckConstants() const
{
assert(fgkNcathodes == AliMpConstants::NofCathodes());
assert(fgkNchambers == AliMpConstants::NofTriggerChambers());
assert(fgkNplanes == AliMpConstants::NofTriggerChambers() * fgkNcathodes);
}
void
AliMUONTriggerEfficiencyCells::ResetHistos(Bool_t deleteObjects)
{
for(Int_t chCath=0; chCath<fgkNplanes; chCath++){
if ( deleteObjects ) {
delete fBoardEfficiency[chCath];
delete fSlatEfficiency[chCath];
}
fBoardEfficiency[chCath] = 0x0;
fSlatEfficiency[chCath] = 0x0;
}
}
void AliMUONTriggerEfficiencyCells::ReadFile(const Char_t* filename, const Char_t* listname)
{
TFile *file = TFile::Open(filename);
if(!file || !file->IsOpen()) {
AliError(Form("Can't read file %s",filename));
return;
}
if ( ! fCountHistoList ) {
fCountHistoList = new TList();
fCountHistoList->SetOwner();
}
TH1F *histo = 0x0;
const Char_t* histoName;
TList* listInFile = 0x0;
TString listNameString(listname);
if ( ! listNameString.IsNull() )
listInFile = (TList*)file->FindObjectAny(listname);
for ( Int_t ide=0; ide<=kHchamberCount; ide++){
for(Int_t ich=0; ich<fgkNchambers; ich++){
if ( ide == kHchamberCount ) ich = fgkNchambers;
for(Int_t hType=0; hType<kNcounts; hType++){
histoName = GetHistoName(ide, hType, ich);
histo = ( listInFile ) ? (TH1F*)listInFile->FindObject(histoName) : (TH1F*)file->Get(histoName);
if ( ! histo ) {
AliWarning(Form("Cannot find %s in file. Skip histogram", histoName));
continue;
}
histo->SetDirectory(0);
fCountHistoList->Add(histo);
AliDebug(5,Form("Adding histogram %s\n",histoName));
if ( ide == kHchamberCount )
continue;
if ( hType < kBothPlanesEff ){
TString newName = histoName;
newName.ReplaceAll("Counts","Eff");
TH1F* auxHisto = (TH1F*)histo->Clone(newName.Data());
auxHisto->SetDirectory(0);
if ( ide == kHboardCount )
fBoardEfficiency[fgkNchambers*hType+ich] = auxHisto;
else if ( ide == kHslatCount )
fSlatEfficiency[fgkNchambers*hType+ich] = auxHisto;
AliDebug(5,Form("Creating histogram %s\n",auxHisto->GetName()));
}
else if ( hType == kAllTracks ){
for ( Int_t icath=0; icath<2; icath++){
if ( ide == kHboardCount )
fBoardEfficiency[fgkNchambers*icath+ich]->Divide(histo);
else if ( ide == kHslatCount )
fSlatEfficiency[fgkNchambers*icath+ich]->Divide(histo);
}
}
}
}
}
file->Close();
}
const Char_t*
AliMUONTriggerEfficiencyCells::GetHistoName(Int_t histoType, Int_t countType,
Int_t chamber)
{
TString histoTypeName[kNcounts] = {"bendPlane", "nonBendPlane", "bothPlanes", "allTracks"};
switch ( histoType ) {
case kHchamberCount:
return Form("%sCountChamber", histoTypeName[countType].Data());
case kHslatCount:
return Form("%sCountSlatCh%i", histoTypeName[countType].Data(), 11+chamber);
case kHboardCount:
return Form("%sCountBoardCh%i", histoTypeName[countType].Data(), 11+chamber);
}
return 0x0;
}
TH1F* AliMUONTriggerEfficiencyCells::GetOldEffHisto(Int_t histoType,
Int_t ich, Int_t icath) const
{
switch ( histoType ) {
case kHboardCount:
return fBoardEfficiency[fgkNchambers*icath+ich];
case kHslatCount:
return fSlatEfficiency[fgkNchambers*icath+ich];
}
return 0x0;
}
AliMUONTriggerEfficiencyCells.cxx:1 AliMUONTriggerEfficiencyCells.cxx:2 AliMUONTriggerEfficiencyCells.cxx:3 AliMUONTriggerEfficiencyCells.cxx:4 AliMUONTriggerEfficiencyCells.cxx:5 AliMUONTriggerEfficiencyCells.cxx:6 AliMUONTriggerEfficiencyCells.cxx:7 AliMUONTriggerEfficiencyCells.cxx:8 AliMUONTriggerEfficiencyCells.cxx:9 AliMUONTriggerEfficiencyCells.cxx:10 AliMUONTriggerEfficiencyCells.cxx:11 AliMUONTriggerEfficiencyCells.cxx:12 AliMUONTriggerEfficiencyCells.cxx:13 AliMUONTriggerEfficiencyCells.cxx:14 AliMUONTriggerEfficiencyCells.cxx:15 AliMUONTriggerEfficiencyCells.cxx:16 AliMUONTriggerEfficiencyCells.cxx:17 AliMUONTriggerEfficiencyCells.cxx:18 AliMUONTriggerEfficiencyCells.cxx:19 AliMUONTriggerEfficiencyCells.cxx:20 AliMUONTriggerEfficiencyCells.cxx:21 AliMUONTriggerEfficiencyCells.cxx:22 AliMUONTriggerEfficiencyCells.cxx:23 AliMUONTriggerEfficiencyCells.cxx:24 AliMUONTriggerEfficiencyCells.cxx:25 AliMUONTriggerEfficiencyCells.cxx:26 AliMUONTriggerEfficiencyCells.cxx:27 AliMUONTriggerEfficiencyCells.cxx:28 AliMUONTriggerEfficiencyCells.cxx:29 AliMUONTriggerEfficiencyCells.cxx:30 AliMUONTriggerEfficiencyCells.cxx:31 AliMUONTriggerEfficiencyCells.cxx:32 AliMUONTriggerEfficiencyCells.cxx:33 AliMUONTriggerEfficiencyCells.cxx:34 AliMUONTriggerEfficiencyCells.cxx:35 AliMUONTriggerEfficiencyCells.cxx:36 AliMUONTriggerEfficiencyCells.cxx:37 AliMUONTriggerEfficiencyCells.cxx:38 AliMUONTriggerEfficiencyCells.cxx:39 AliMUONTriggerEfficiencyCells.cxx:40 AliMUONTriggerEfficiencyCells.cxx:41 AliMUONTriggerEfficiencyCells.cxx:42 AliMUONTriggerEfficiencyCells.cxx:43 AliMUONTriggerEfficiencyCells.cxx:44 AliMUONTriggerEfficiencyCells.cxx:45 AliMUONTriggerEfficiencyCells.cxx:46 AliMUONTriggerEfficiencyCells.cxx:47 AliMUONTriggerEfficiencyCells.cxx:48 AliMUONTriggerEfficiencyCells.cxx:49 AliMUONTriggerEfficiencyCells.cxx:50 AliMUONTriggerEfficiencyCells.cxx:51 AliMUONTriggerEfficiencyCells.cxx:52 AliMUONTriggerEfficiencyCells.cxx:53 AliMUONTriggerEfficiencyCells.cxx:54 AliMUONTriggerEfficiencyCells.cxx:55 AliMUONTriggerEfficiencyCells.cxx:56 AliMUONTriggerEfficiencyCells.cxx:57 AliMUONTriggerEfficiencyCells.cxx:58 AliMUONTriggerEfficiencyCells.cxx:59 AliMUONTriggerEfficiencyCells.cxx:60 AliMUONTriggerEfficiencyCells.cxx:61 AliMUONTriggerEfficiencyCells.cxx:62 AliMUONTriggerEfficiencyCells.cxx:63 AliMUONTriggerEfficiencyCells.cxx:64 AliMUONTriggerEfficiencyCells.cxx:65 AliMUONTriggerEfficiencyCells.cxx:66 AliMUONTriggerEfficiencyCells.cxx:67 AliMUONTriggerEfficiencyCells.cxx:68 AliMUONTriggerEfficiencyCells.cxx:69 AliMUONTriggerEfficiencyCells.cxx:70 AliMUONTriggerEfficiencyCells.cxx:71 AliMUONTriggerEfficiencyCells.cxx:72 AliMUONTriggerEfficiencyCells.cxx:73 AliMUONTriggerEfficiencyCells.cxx:74 AliMUONTriggerEfficiencyCells.cxx:75 AliMUONTriggerEfficiencyCells.cxx:76 AliMUONTriggerEfficiencyCells.cxx:77 AliMUONTriggerEfficiencyCells.cxx:78 AliMUONTriggerEfficiencyCells.cxx:79 AliMUONTriggerEfficiencyCells.cxx:80 AliMUONTriggerEfficiencyCells.cxx:81 AliMUONTriggerEfficiencyCells.cxx:82 AliMUONTriggerEfficiencyCells.cxx:83 AliMUONTriggerEfficiencyCells.cxx:84 AliMUONTriggerEfficiencyCells.cxx:85 AliMUONTriggerEfficiencyCells.cxx:86 AliMUONTriggerEfficiencyCells.cxx:87 AliMUONTriggerEfficiencyCells.cxx:88 AliMUONTriggerEfficiencyCells.cxx:89 AliMUONTriggerEfficiencyCells.cxx:90 AliMUONTriggerEfficiencyCells.cxx:91 AliMUONTriggerEfficiencyCells.cxx:92 AliMUONTriggerEfficiencyCells.cxx:93 AliMUONTriggerEfficiencyCells.cxx:94 AliMUONTriggerEfficiencyCells.cxx:95 AliMUONTriggerEfficiencyCells.cxx:96 AliMUONTriggerEfficiencyCells.cxx:97 AliMUONTriggerEfficiencyCells.cxx:98 AliMUONTriggerEfficiencyCells.cxx:99 AliMUONTriggerEfficiencyCells.cxx:100 AliMUONTriggerEfficiencyCells.cxx:101 AliMUONTriggerEfficiencyCells.cxx:102 AliMUONTriggerEfficiencyCells.cxx:103 AliMUONTriggerEfficiencyCells.cxx:104 AliMUONTriggerEfficiencyCells.cxx:105 AliMUONTriggerEfficiencyCells.cxx:106 AliMUONTriggerEfficiencyCells.cxx:107 AliMUONTriggerEfficiencyCells.cxx:108 AliMUONTriggerEfficiencyCells.cxx:109 AliMUONTriggerEfficiencyCells.cxx:110 AliMUONTriggerEfficiencyCells.cxx:111 AliMUONTriggerEfficiencyCells.cxx:112 AliMUONTriggerEfficiencyCells.cxx:113 AliMUONTriggerEfficiencyCells.cxx:114 AliMUONTriggerEfficiencyCells.cxx:115 AliMUONTriggerEfficiencyCells.cxx:116 AliMUONTriggerEfficiencyCells.cxx:117 AliMUONTriggerEfficiencyCells.cxx:118 AliMUONTriggerEfficiencyCells.cxx:119 AliMUONTriggerEfficiencyCells.cxx:120 AliMUONTriggerEfficiencyCells.cxx:121 AliMUONTriggerEfficiencyCells.cxx:122 AliMUONTriggerEfficiencyCells.cxx:123 AliMUONTriggerEfficiencyCells.cxx:124 AliMUONTriggerEfficiencyCells.cxx:125 AliMUONTriggerEfficiencyCells.cxx:126 AliMUONTriggerEfficiencyCells.cxx:127 AliMUONTriggerEfficiencyCells.cxx:128 AliMUONTriggerEfficiencyCells.cxx:129 AliMUONTriggerEfficiencyCells.cxx:130 AliMUONTriggerEfficiencyCells.cxx:131 AliMUONTriggerEfficiencyCells.cxx:132 AliMUONTriggerEfficiencyCells.cxx:133 AliMUONTriggerEfficiencyCells.cxx:134 AliMUONTriggerEfficiencyCells.cxx:135 AliMUONTriggerEfficiencyCells.cxx:136 AliMUONTriggerEfficiencyCells.cxx:137 AliMUONTriggerEfficiencyCells.cxx:138 AliMUONTriggerEfficiencyCells.cxx:139 AliMUONTriggerEfficiencyCells.cxx:140 AliMUONTriggerEfficiencyCells.cxx:141 AliMUONTriggerEfficiencyCells.cxx:142 AliMUONTriggerEfficiencyCells.cxx:143 AliMUONTriggerEfficiencyCells.cxx:144 AliMUONTriggerEfficiencyCells.cxx:145 AliMUONTriggerEfficiencyCells.cxx:146 AliMUONTriggerEfficiencyCells.cxx:147 AliMUONTriggerEfficiencyCells.cxx:148 AliMUONTriggerEfficiencyCells.cxx:149 AliMUONTriggerEfficiencyCells.cxx:150 AliMUONTriggerEfficiencyCells.cxx:151 AliMUONTriggerEfficiencyCells.cxx:152 AliMUONTriggerEfficiencyCells.cxx:153 AliMUONTriggerEfficiencyCells.cxx:154 AliMUONTriggerEfficiencyCells.cxx:155 AliMUONTriggerEfficiencyCells.cxx:156 AliMUONTriggerEfficiencyCells.cxx:157 AliMUONTriggerEfficiencyCells.cxx:158 AliMUONTriggerEfficiencyCells.cxx:159 AliMUONTriggerEfficiencyCells.cxx:160 AliMUONTriggerEfficiencyCells.cxx:161 AliMUONTriggerEfficiencyCells.cxx:162 AliMUONTriggerEfficiencyCells.cxx:163 AliMUONTriggerEfficiencyCells.cxx:164 AliMUONTriggerEfficiencyCells.cxx:165 AliMUONTriggerEfficiencyCells.cxx:166 AliMUONTriggerEfficiencyCells.cxx:167 AliMUONTriggerEfficiencyCells.cxx:168 AliMUONTriggerEfficiencyCells.cxx:169 AliMUONTriggerEfficiencyCells.cxx:170 AliMUONTriggerEfficiencyCells.cxx:171 AliMUONTriggerEfficiencyCells.cxx:172 AliMUONTriggerEfficiencyCells.cxx:173 AliMUONTriggerEfficiencyCells.cxx:174 AliMUONTriggerEfficiencyCells.cxx:175 AliMUONTriggerEfficiencyCells.cxx:176 AliMUONTriggerEfficiencyCells.cxx:177 AliMUONTriggerEfficiencyCells.cxx:178 AliMUONTriggerEfficiencyCells.cxx:179 AliMUONTriggerEfficiencyCells.cxx:180 AliMUONTriggerEfficiencyCells.cxx:181 AliMUONTriggerEfficiencyCells.cxx:182 AliMUONTriggerEfficiencyCells.cxx:183 AliMUONTriggerEfficiencyCells.cxx:184 AliMUONTriggerEfficiencyCells.cxx:185 AliMUONTriggerEfficiencyCells.cxx:186 AliMUONTriggerEfficiencyCells.cxx:187 AliMUONTriggerEfficiencyCells.cxx:188 AliMUONTriggerEfficiencyCells.cxx:189 AliMUONTriggerEfficiencyCells.cxx:190 AliMUONTriggerEfficiencyCells.cxx:191 AliMUONTriggerEfficiencyCells.cxx:192 AliMUONTriggerEfficiencyCells.cxx:193 AliMUONTriggerEfficiencyCells.cxx:194 AliMUONTriggerEfficiencyCells.cxx:195 AliMUONTriggerEfficiencyCells.cxx:196 AliMUONTriggerEfficiencyCells.cxx:197 AliMUONTriggerEfficiencyCells.cxx:198 AliMUONTriggerEfficiencyCells.cxx:199 AliMUONTriggerEfficiencyCells.cxx:200 AliMUONTriggerEfficiencyCells.cxx:201 AliMUONTriggerEfficiencyCells.cxx:202 AliMUONTriggerEfficiencyCells.cxx:203 AliMUONTriggerEfficiencyCells.cxx:204 AliMUONTriggerEfficiencyCells.cxx:205 AliMUONTriggerEfficiencyCells.cxx:206 AliMUONTriggerEfficiencyCells.cxx:207 AliMUONTriggerEfficiencyCells.cxx:208 AliMUONTriggerEfficiencyCells.cxx:209 AliMUONTriggerEfficiencyCells.cxx:210 AliMUONTriggerEfficiencyCells.cxx:211 AliMUONTriggerEfficiencyCells.cxx:212 AliMUONTriggerEfficiencyCells.cxx:213 AliMUONTriggerEfficiencyCells.cxx:214 AliMUONTriggerEfficiencyCells.cxx:215 AliMUONTriggerEfficiencyCells.cxx:216 AliMUONTriggerEfficiencyCells.cxx:217 AliMUONTriggerEfficiencyCells.cxx:218 AliMUONTriggerEfficiencyCells.cxx:219 AliMUONTriggerEfficiencyCells.cxx:220 AliMUONTriggerEfficiencyCells.cxx:221 AliMUONTriggerEfficiencyCells.cxx:222 AliMUONTriggerEfficiencyCells.cxx:223 AliMUONTriggerEfficiencyCells.cxx:224 AliMUONTriggerEfficiencyCells.cxx:225 AliMUONTriggerEfficiencyCells.cxx:226 AliMUONTriggerEfficiencyCells.cxx:227 AliMUONTriggerEfficiencyCells.cxx:228 AliMUONTriggerEfficiencyCells.cxx:229 AliMUONTriggerEfficiencyCells.cxx:230 AliMUONTriggerEfficiencyCells.cxx:231 AliMUONTriggerEfficiencyCells.cxx:232 AliMUONTriggerEfficiencyCells.cxx:233 AliMUONTriggerEfficiencyCells.cxx:234 AliMUONTriggerEfficiencyCells.cxx:235 AliMUONTriggerEfficiencyCells.cxx:236 AliMUONTriggerEfficiencyCells.cxx:237 AliMUONTriggerEfficiencyCells.cxx:238 AliMUONTriggerEfficiencyCells.cxx:239 AliMUONTriggerEfficiencyCells.cxx:240 AliMUONTriggerEfficiencyCells.cxx:241 AliMUONTriggerEfficiencyCells.cxx:242 AliMUONTriggerEfficiencyCells.cxx:243 AliMUONTriggerEfficiencyCells.cxx:244 AliMUONTriggerEfficiencyCells.cxx:245 AliMUONTriggerEfficiencyCells.cxx:246 AliMUONTriggerEfficiencyCells.cxx:247 AliMUONTriggerEfficiencyCells.cxx:248 AliMUONTriggerEfficiencyCells.cxx:249 AliMUONTriggerEfficiencyCells.cxx:250 AliMUONTriggerEfficiencyCells.cxx:251 AliMUONTriggerEfficiencyCells.cxx:252 AliMUONTriggerEfficiencyCells.cxx:253 AliMUONTriggerEfficiencyCells.cxx:254 AliMUONTriggerEfficiencyCells.cxx:255 AliMUONTriggerEfficiencyCells.cxx:256 AliMUONTriggerEfficiencyCells.cxx:257 AliMUONTriggerEfficiencyCells.cxx:258 AliMUONTriggerEfficiencyCells.cxx:259 AliMUONTriggerEfficiencyCells.cxx:260 AliMUONTriggerEfficiencyCells.cxx:261 AliMUONTriggerEfficiencyCells.cxx:262 AliMUONTriggerEfficiencyCells.cxx:263 AliMUONTriggerEfficiencyCells.cxx:264 AliMUONTriggerEfficiencyCells.cxx:265 AliMUONTriggerEfficiencyCells.cxx:266 AliMUONTriggerEfficiencyCells.cxx:267 AliMUONTriggerEfficiencyCells.cxx:268 AliMUONTriggerEfficiencyCells.cxx:269 AliMUONTriggerEfficiencyCells.cxx:270 AliMUONTriggerEfficiencyCells.cxx:271 AliMUONTriggerEfficiencyCells.cxx:272 AliMUONTriggerEfficiencyCells.cxx:273