X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVE%2Falice-macros%2Fits_common_foos.C;h=36e03b93d556263ebdefb9a1da789fc284ee7f15;hb=105fb267d6c45f396a59053b869469488c825d7a;hp=11cfba7110ac6a3149809121c81582ec05dd778f;hpb=c2c4b7a2af55d52eb6876ae74adeee68dbb64a22;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVE/alice-macros/its_common_foos.C b/EVE/alice-macros/its_common_foos.C index 11cfba7110a..36e03b93d55 100644 --- a/EVE/alice-macros/its_common_foos.C +++ b/EVE/alice-macros/its_common_foos.C @@ -1,4 +1,4 @@ -// $Id: its_raw.C 24929 2008-04-04 13:51:43Z mtadel $ +// $Id$ // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 /************************************************************************** @@ -10,163 +10,213 @@ void its_common_foos() {} -void its_display_raw_digits(AliEveITSDigitsInfo* di, Int_t mode) +AliEveITSModule* its_make_module(Int_t i, TEveElement* parent, + AliEveITSDigitsInfo* di, + AliEveDigitScaleInfo* si, + Bool_t check_empty, + Bool_t scaled_modules) { + AliEveITSModule* m = 0; + + Int_t det_id = 0; + if (i > 239 && i < 500) det_id = 1; + else if (i >= 500) det_id = 2; + + if (!check_empty || di->HasData(i, det_id) || di->IsDead(i, det_id)) + { + if (scaled_modules) + m = new AliEveITSScaledModule(i, di, si); + else + m = new AliEveITSModule(i, di); + + // Before 5.26 ROOT did not draw frames of empty quad-sets. + // Bypass until we move there. + if (!di->HasData(i, det_id)) + { + m->AddQuad(0,0,0,0); + m->RefitPlex(); + } + + if (parent) + parent->AddElement(m); + } + + return m; +} + +void its_display_raw_digits(AliEveITSDigitsInfo* di, Int_t mode, + Bool_t check_empty = kTRUE, + Bool_t scaled_modules = kFALSE) +{ + const TString bsSector = "Sector"; + const TString bsStave = "Stave"; + const TString bsLadder = "Ladder"; TString sSector; - TString bsSector="Sector"; TString sStave; - TString bsStave="Stave"; TString sLadder; - TString bsLadder="Ladder"; - Int_t i=0; - Int_t nsec, nstave, nlad, nMod; + Int_t i=0; + Long_t nsec, nstave, nlad, nMod; gEve->DisableRedraw(); - if (mode & 1) { + AliEveDigitScaleInfo* si = 0; + if (scaled_modules) + { + si = new AliEveDigitScaleInfo; + } + + if (mode & 1) + { TEveElementList* l = new TEveElementList("SPD0"); l->SetTitle("SPDs' first layer"); - l->SetMainColor((Color_t)2); + l->SetMainColor(kRed); gEve->AddElement(l); - for (nsec=0; nsec<10; nsec++) { - sSector = bsSector; - sSector += nsec; - TEveElementList* relSector = new TEveElementList(sSector.Data()); - relSector->SetMainColor((Color_t)2); - gEve->AddElement(relSector, l); - for (nstave=0; nstave<2; nstave++){ - sStave = bsStave; - sStave += nstave; - TEveElementList* relStave = new TEveElementList(sStave.Data()); - relStave->SetMainColor((Color_t)2); - gEve->AddElement(relStave, relSector); - for (nMod=0; nMod<4; nMod++) + + for (nsec=0; nsec<10; nsec++) + { + TEveElementList* relSector = new TEveElementList(bsSector + nsec); + relSector->SetMainColor(kRed); + l->AddElement(relSector); + + for (nstave=0; nstave<2; nstave++) + { + TEveElementList* relStave = new TEveElementList(bsStave + nstave); + relStave->SetMainColor(kRed); + relSector->AddElement(relStave); + + for (nMod=0; nMod<4; ++nMod, ++i) { - if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0) - { - AliEveITSModule* m = new AliEveITSModule(i, di); - gEve->AddElement(m, relStave); - } - ++i; + its_make_module(i, relStave, di, si, check_empty, scaled_modules); } } } - } else { + } + else + { i += 10*2*4; } - if (mode & 2) { + if (mode & 2) + { TEveElementList* l = new TEveElementList("SPD1"); l->SetTitle("SPDs' second layer"); - l->SetMainColor((Color_t)2); + l->SetMainColor(kRed); gEve->AddElement(l); - for (nsec=0; nsec<10; nsec++) { - sSector = bsSector; - sSector += nsec; - TEveElementList* relSector = new TEveElementList(sSector.Data()); - relSector->SetMainColor((Color_t)2); - gEve->AddElement(relSector, l); - for (nstave=0; nstave<4; nstave++){ - sStave = bsStave; - sStave += nstave; - TEveElementList* relStave = new TEveElementList(sStave.Data()); - relStave->SetMainColor((Color_t)2); - gEve->AddElement(relStave, relSector); - for (nMod=0; nMod<4; nMod++) + for (nsec=0; nsec<10; nsec++) + { + TEveElementList* relSector = new TEveElementList(bsSector + nsec); + relSector->SetMainColor(kRed); + l->AddElement(relSector); + + for (nstave=0; nstave<4; nstave++) + { + TEveElementList* relStave = new TEveElementList(bsStave + nstave); + relStave->SetMainColor(kRed); + relSector->AddElement(relStave); + + for (nMod=0; nMod<4; ++nMod, ++i) { - if (di->GetDigits(i, 0) && di->GetDigits(i, 0)->GetEntriesFast() > 0) - { - AliEveITSModule* m = new AliEveITSModule(i, di); - gEve->AddElement(m, relStave); - } - ++i; + its_make_module(i, relStave, di, si, check_empty, scaled_modules); } } } - } else { + } + else + { i += 10*4*4; } - if (mode & 4) { + if (mode & 4) + { TEveElementList* l = new TEveElementList("SDD2"); l->SetTitle("SDDs' first layer"); - l->SetMainColor((Color_t)3); + l->SetMainColor(kBlue); gEve->AddElement(l); - for (nlad=0; nlad<14; nlad++) { - sLadder = bsLadder; - sLadder += nlad; - TEveElementList* relLadder = new TEveElementList(sLadder.Data()); - relLadder->SetMainColor((Color_t)3); - gEve->AddElement(relLadder, l); - for (nMod=0; nMod<6; nMod++) { - AliEveITSModule* m = new AliEveITSModule(i++, di); - gEve->AddElement(m, relLadder); + for (nlad=0; nlad<14; nlad++) + { + TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); + relLadder->SetMainColor(kBlue); + l->AddElement(relLadder); + for (nMod=0; nMod<6; ++nMod, ++i) + { + its_make_module(i, relLadder, di, si, check_empty, scaled_modules); } } - } else { + } + else + { i += 14*6; } - if (mode & 8) { + if (mode & 8) + { TEveElementList* l = new TEveElementList("SDD3"); l->SetTitle("SDDs' second layer"); - l->SetMainColor((Color_t)3); + l->SetMainColor(kBlue); gEve->AddElement(l); - for (nlad=0; nlad<22; nlad++) { - sLadder = bsLadder; - sLadder += nlad; - TEveElementList* relLadder = new TEveElementList(sLadder.Data()); - relLadder->SetMainColor((Color_t)3); - gEve->AddElement(relLadder, l); - for (nMod=0; nMod<8; nMod++) { - AliEveITSModule* m = new AliEveITSModule(i++, di); - gEve->AddElement(m, relLadder); + + for (nlad=0; nlad<22; nlad++) + { + TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); + relLadder->SetMainColor(kBlue); + l->AddElement(relLadder); + for (nMod=0; nMod<8; ++nMod, ++i) + { + its_make_module(i, relLadder, di, si, check_empty, scaled_modules); } } - } else { + } + else + { i += 22*8; } - if (mode & 16) { + if (mode & 16) + { TEveElementList* l = new TEveElementList("SSD4"); l->SetTitle("SSDs' first layer"); - l->SetMainColor((Color_t)4); + l->SetMainColor(kGreen); gEve->AddElement(l); - for (nlad=0; nlad<34; nlad++) { - sLadder = bsLadder; - sLadder += nlad; - TEveElementList* relLadder = new TEveElementList(sLadder.Data()); - relLadder->SetMainColor((Color_t)4); - gEve->AddElement(relLadder, l); - for (nMod=0; nMod<22; nMod++) { - AliEveITSModule* m = new AliEveITSModule(i++, di); - gEve->AddElement(m, relLadder); + + for (nlad=0; nlad<34; nlad++) + { + TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); + relLadder->SetMainColor(kGreen); + l->AddElement(relLadder); + for (nMod=0; nMod<22; ++nMod, ++i) + { + its_make_module(i, relLadder, di, si, check_empty, scaled_modules); } } - } else { + } + else + { i += 34*22; } - if (mode & 32) { + if (mode & 32) + { TEveElementList* l = new TEveElementList("SSD5"); l->SetTitle("SSDs' second layer"); - l->SetMainColor((Color_t)4); + l->SetMainColor(kGreen); gEve->AddElement(l); - for (nlad=0; nlad<38; nlad++) { - sLadder = bsLadder; - sLadder += nlad; - TEveElementList* relLadder = new TEveElementList(sLadder.Data()); - relLadder->SetMainColor((Color_t)4); - gEve->AddElement(relLadder, l); - for (nMod=0; nMod<25; nMod++) { - AliEveITSModule* m = new AliEveITSModule(i++, di); - gEve->AddElement(m, relLadder); + + for (nlad=0; nlad<38; nlad++) + { + TEveElementList* relLadder = new TEveElementList(bsLadder + nlad); + relLadder->SetMainColor(kGreen); + l->AddElement(relLadder); + for (nMod=0; nMod<25; ++nMod, ++i) + { + its_make_module(i, relLadder, di, si, check_empty, scaled_modules); } } - } else { + } + else + { i += 38*25; }