From c63c3c5d365bcab29e17aca25ea8c04edc250e2d Mon Sep 17 00:00:00 2001 From: pavlinov Date: Tue, 14 Feb 2006 17:14:28 +0000 Subject: [PATCH] Discard STAR type geometry before MDC --- EMCAL/AliEMCALGeometry.cxx | 107 +++++++++++---- EMCAL/AliEMCALGeometry.h | 26 ++-- EMCAL/AliEMCALShishKebabModule.cxx | 6 +- EMCAL/AliEMCALShishKebabModule.h | 2 +- EMCAL/AliEMCALShishKebabTrd1Module.cxx | 6 +- EMCAL/AliEMCALShishKebabTrd1Module.h | 2 +- EMCAL/AliEMCALv0.cxx | 179 +------------------------ EMCAL/AliEMCALv0.h | 5 +- EMCAL/AliEMCALv2.cxx | 38 +----- EMCAL/AliEMCALv2.h | 5 - 10 files changed, 112 insertions(+), 264 deletions(-) diff --git a/EMCAL/AliEMCALGeometry.cxx b/EMCAL/AliEMCALGeometry.cxx index 0109df6de4e..469d48d136e 100644 --- a/EMCAL/AliEMCALGeometry.cxx +++ b/EMCAL/AliEMCALGeometry.cxx @@ -27,10 +27,14 @@ // and : Yves Schutz (SUBATECH) // and : Jennifer Klay (LBL) // SHASHLYK : Aleksei Pavlinov (WSU) +// SuperModules -> module(or tower) -> cell // --- AliRoot header files --- #include #include +#include +#include +#include // -- ALICE Headers. //#include "AliConst.h" @@ -44,6 +48,12 @@ AliEMCALGeometry *AliEMCALGeometry::fgGeom = 0; Bool_t AliEMCALGeometry::fgInit = kFALSE; TString name; // contains name of geometry +char *additionalOpts[]={"nl=", // number of sampling layers + "pbTh=", // cm, Thickness of the Pb + "scTh=" // cm, Thickness of the Sc +}; +int nAdditionalOpts = sizeof(additionalOpts) / sizeof(char*); + //______________________________________________________________________ AliEMCALGeometry::~AliEMCALGeometry(void){ // dtor @@ -51,7 +61,7 @@ AliEMCALGeometry::~AliEMCALGeometry(void){ //______________________________________________________________________ Bool_t AliEMCALGeometry::AreInSameTower(Int_t id1, Int_t id2) const { - // Find out whether two hits are in the same tower + // Find out whether two hits are in the same tower - have to be change Int_t idmax = TMath::Max(id1, id2) ; Int_t idmin = TMath::Min(id1, id2) ; if ( ((idmax - GetNZ() * GetNPhi()) == idmin ) || @@ -70,7 +80,8 @@ void AliEMCALGeometry::Init(void){ // New geometry: EMCAL_55_25 // 24-aug-04 for shish-kebab // SHISH_25 or SHISH_62 - // 11-oct-05 - correction for final design + // 11-oct-05 - correction for pre final design + // Feb 06,2006 - decrease the weight of EMCAL fgInit = kFALSE; // Assume failed until proven otherwise. name = GetName(); name.ToUpper(); @@ -87,20 +98,7 @@ void AliEMCALGeometry::Init(void){ fPhiGapForSM = 0.; // cm, only for final TRD1 geometry // geometry - if (name == "EMCAL_55_25") { - fECPbRadThickness = 0.5; // cm, Thickness of the Pb radiators - fECScintThick = 0.5; // cm, Thickness of the scintillator - fNECLayers = 25; // number of scintillator layers - - fSampling = 13.1; // calculated with Birk's law implementation - - fAlFrontThick = 3.5; // cm, Thickness of front Al layer - fGap2Active = 1.0; // cm, Gap between Al and 1st Scintillator - } - else if( name == "G56_2_55_19" || name == "EMCAL_5655_21" || name == "G56_2_55_19_104_14"|| name == "G65_2_64_19" || name == "EMCAL_6564_21"){ - Fatal("Init", "%s is an old geometry! Please update your Config file", name.Data()) ; - } - else if(name.Contains("SHISH")){ + if(name.Contains("SHISH")){ // Only shahslyk now // 7-sep-05; integration issue fArm1PhiMin = 80.0; // 60 -> 80 fArm1PhiMax = 180.0; // 180 -> 190 @@ -190,6 +188,9 @@ void AliEMCALGeometry::Init(void){ fShellThickness = 30.; // should be change fNPhi = fNZ = 4; } + + CheckAditionalOptions(); + // constant for transition absid <--> indexes fNCellsInTower = fNPHIdiv*fNETAdiv; fNCellsInSupMod = fNCellsInTower*fNPhi*fNZ; @@ -206,10 +207,7 @@ void AliEMCALGeometry::Init(void){ f2Trd2Dy2 = fPhiModuleSize + 2.*fLongModuleSize*TMath::Tan(fTrd2AngleY*TMath::DegToRad()/2.); } } - } - else - Fatal("Init", "%s is an undefined geometry!", name.Data()) ; - + } else Fatal("Init", "%s is an undefined geometry!", name.Data()) ; fNPhiSuperModule = fNumberOfSuperModules/2; if(fNPhiSuperModule<1) fNPhiSuperModule = 1; @@ -250,9 +248,10 @@ void AliEMCALGeometry::Init(void){ printf(" fPassiveScintThick %6.4f cm (thickness of front passive Sc tile)\n", fPassiveScintThick); } - printf(" X:Y module size %6.3f , %6.3f cm \n", fPhiModuleSize, fEtaModuleSize); - printf(" X:Y tile size %6.3f , %6.3f cm \n", fPhiTileSize, fEtaTileSize); - printf(" fLongModuleSize %6.3f cm \n", fLongModuleSize); + printf(" X:Y module size %6.3f , %6.3f cm \n", fPhiModuleSize, fEtaModuleSize); + printf(" X:Y tile size %6.3f , %6.3f cm \n", fPhiTileSize, fEtaTileSize); + printf(" #of sampling layers %i(fNECLayers) \n", fNECLayers); + printf(" fLongModuleSize %6.3f cm \n", fLongModuleSize); printf(" #supermodule in phi direction %i \n", fNPhiSuperModule ); } if(name.Contains("TRD")) { @@ -275,6 +274,49 @@ void AliEMCALGeometry::Init(void){ } } +//______________________________________________________________________ + +void AliEMCALGeometry::CheckAditionalOptions() +{ // Feb 06,2006 + fArrayOpts = new TObjArray; + Int_t nopt = ParseString(name, *fArrayOpts); + if(nopt==1) { // no aditional option(s) + fArrayOpts->Delete(); + delete fArrayOpts; + fArrayOpts = 0; + return; + } + for(Int_t i=1; iAt(i); + + TString addOpt = o->String(); + Int_t indj=-1; + for(Int_t j=0; j option |%s| unavailable : ** look to the file AliEMCALGeometry.h **\n", + addOpt.Data()); + assert(0); + } else { + printf(" option |%s| is valid : number %i : |%s|\n", + addOpt.Data(), indj, additionalOpts[indj]); + if (addOpt.Contains("NL=",TString::kIgnoreCase)) {// number of sampling layers + sscanf(addOpt.Data(),"NL=%i", &fNECLayers); + printf(" fNECLayers %i (new) \n", fNECLayers); + } else if(addOpt.Contains("PBTH=",TString::kIgnoreCase)) {//Thickness of the Pb + sscanf(addOpt.Data(),"PBTH=%f", &fECPbRadThickness); + } else if(addOpt.Contains("SCTH=",TString::kIgnoreCase)) {//Thickness of the Sc + sscanf(addOpt.Data(),"SCTH=%f", &fECScintThick); + } + } + } +} + //______________________________________________________________________ AliEMCALGeometry * AliEMCALGeometry::GetInstance(){ // Returns the pointer of the unique instance @@ -312,6 +354,7 @@ AliEMCALGeometry* AliEMCALGeometry::GetInstance(const Text_t* name, return rv; } +// These methods are obsolete but use in AliEMCALRecPoint - keep it now //______________________________________________________________________ Int_t AliEMCALGeometry::TowerIndex(Int_t ieta,Int_t iphi) const { // Returns the tower index number from the based on the Z and Phi @@ -592,6 +635,7 @@ Bool_t AliEMCALGeometry::IsInEMCAL(Double_t x, Double_t y, Double_t z) const { } return 0; } +// == // // == Shish-kebab cases == @@ -682,3 +726,20 @@ int &iphi, int &ieta) // iphi - have to change from 1 to fNPhi*fNPHIdiv iphi = (iphit-1)*fNPHIdiv + nIphi; // y(module) = y(SM) } +// Service routine +int AliEMCALGeometry::ParseString(const TString &topt, TObjArray &Opt) +{ // Feb 06, 2006 + Ssiz_t begin, index, end, end2; + begin = index = end = end2 = 0; + TRegexp separator("[^ ;,\\t\\s/]+"); + while ( (begin < topt.Length()) && (index != kNPOS) ) { + // loop over given options + index = topt.Index(separator,&end,begin); + if (index >= 0 && end >= 1) { + TString substring(topt(index,end)); + Opt.Add(new TObjString(substring.Data())); + } + begin += end+1; + } + return Opt.GetEntries(); +} diff --git a/EMCAL/AliEMCALGeometry.h b/EMCAL/AliEMCALGeometry.h index 60aad85833e..2a7cc8ffca8 100644 --- a/EMCAL/AliEMCALGeometry.h +++ b/EMCAL/AliEMCALGeometry.h @@ -11,17 +11,15 @@ // //*-- Author: Sahal Yacoob (LBL / UCT) //*-- and : Yves Schutz (Subatech) - -//#include +//*-- and : Aleksei Pavlinov (WSU) - shashlyk staff // --- ROOT system --- class TString ; -class TObjArray ; +class TObjArray; class TVector3 ; class TParticle ; // --- AliRoot header files --- - #include "AliGeometry.h" class AliEMCALGeometry : public AliGeometry { @@ -48,7 +46,7 @@ public: Bool_t IsInEMCAL(Double_t x, Double_t y, Double_t z) const; // General Bool_t IsInitialized(void) const { return fgInit ; } - // Return EMCA geometrical parameters + // Return EMCAL geometrical parameters // geometry Float_t GetAlFrontThickness() const { return fAlFrontThick;} Float_t GetArm1PhiMin() const { return fArm1PhiMin ; } @@ -60,7 +58,7 @@ public: Float_t GetEnvelop(Int_t index) const { return fEnvelop[index] ; } Float_t GetShellThickness() const { return fShellThickness ; } Float_t GetZLength() const { return fZLength ; } - Float_t GetGap2Active() const {return fGap2Active ; } + Float_t GetGap2Active() const {return fGap2Active ;} Float_t GetDeltaEta() const {return (fArm1EtaMax-fArm1EtaMin)/ ((Float_t)fNZ);} Float_t GetDeltaPhi() const {return (fArm1PhiMax-fArm1PhiMin)/ @@ -112,6 +110,7 @@ public: // pseudorapidity and r=sqrt(x*x+y*y). return r/TMath::Tan(AngleFromEta(eta)); } + // These methods are obsolete but use in AliEMCALRecPoint - keep it now Int_t TowerIndex(Int_t iz,Int_t iphi) const; // returns tower index // returns tower indexs iz, iphi. void TowerIndexes(Int_t index,Int_t &iz,Int_t &iphi) const; @@ -126,6 +125,7 @@ public: void PosInAlice(const Int_t *relid, Float_t &theta, Float_t &phi) const ; void PosInAlice(Int_t absid, Float_t &theta, Float_t &phi) const ; Bool_t AbsToRelNumbering(Int_t AbsId, Int_t *relid) const; + // -- void SetNZ(Int_t nz) { fNZ= nz ; printf("SetNZ: Number of modules in Z set to %d", fNZ) ; } void SetNPhi(Int_t nphi) { fNPhi= nphi ; printf("SetNPhi: Number of modules in Phi set to %d", fNPhi) ; } void SetSampling(Float_t samp) { fSampling = samp; printf("SetSampling: Sampling factor set to %f", fSampling) ; } @@ -140,12 +140,14 @@ protected: Init(); }; void Init(void); // initializes the parameters of EMCAL + void CheckAditionalOptions(); // private: static AliEMCALGeometry * fgGeom; // pointer to the unique instance of the singleton static Bool_t fgInit; // Tells if geometry has been succesfully set up. - Float_t fAlFrontThick; // Thickness of the front Al face of the support box - + TObjArray *fArrayOpts; //! array of geometry options + + Float_t fAlFrontThick; // Thickness of the front Al face of the support box Float_t fECPbRadThickness; // cm, Thickness of the Pb radiators Float_t fECScintThick; // cm, Thickness of the scintillators Int_t fNECLayers; // number of scintillator layers @@ -182,7 +184,7 @@ private: // Int_t fNCells; // number of cells in calo Int_t fNCellsInSupMod; // number cell in super module - Int_t fNCellsInTower; // number cell in tower + Int_t fNCellsInTower; // number cell in tower(or module) // TRD1 options - 30-sep-04 Float_t fTrd1Angle; // angle in x-z plane (in degree) Float_t f2Trd1Dx2; // 2*dx2 for TRD1 @@ -195,8 +197,10 @@ private: // Super module as TUBS Float_t fTubsR; // radius of tubs Float_t fTubsTurnAngle; // turn angle of tubs in degree + // Service routine + static int ParseString(const TString &topt, TObjArray &Opt); - ClassDef(AliEMCALGeometry,9) // EMCAL geometry class - }; + ClassDef(AliEMCALGeometry,10) // EMCAL geometry class + }; #endif // AliEMCALGEOMETRY_H diff --git a/EMCAL/AliEMCALShishKebabModule.cxx b/EMCAL/AliEMCALShishKebabModule.cxx index d8048193139..ac550088161 100644 --- a/EMCAL/AliEMCALShishKebabModule.cxx +++ b/EMCAL/AliEMCALShishKebabModule.cxx @@ -162,15 +162,15 @@ Bool_t AliEMCALShishKebabModule::GetParameters() fga = (Double_t)fgGeometry->GetPhiModuleSize(); fgb = (Double_t)fgGeometry->GetLongModuleSize(); fgr = (Double_t)(fgGeometry->GetIPDistance() + fgGeometry->GetSteelFrontThickness()); - Print(0); + PrintShish(0); return kTRUE; } // service methods -void AliEMCALShishKebabModule::Print(int pri) const +void AliEMCALShishKebabModule::PrintShish(int pri) const { if(pri>=0) { - Info("Print()", " a %7.2f | b %7.2f | r %7.2f ", fga, fgb, fgr); + Info("PrintShish()", " a %7.2f | b %7.2f | r %7.2f ", fga, fgb, fgr); printf(" fTheta %f : %5.2f : cos(theta) %f\n", fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); if(pri>0) { printf("%i %s | theta %f -> %f\n", GetUniqueID(), GetName(), fTheta, fOK.Phi()); diff --git a/EMCAL/AliEMCALShishKebabModule.h b/EMCAL/AliEMCALShishKebabModule.h index 962ab51ac6f..596e93a220a 100644 --- a/EMCAL/AliEMCALShishKebabModule.h +++ b/EMCAL/AliEMCALShishKebabModule.h @@ -49,7 +49,7 @@ class AliEMCALShishKebabModule : public TNamed { Double_t fA; // parameters of line = y = A*z + B Double_t fB; // // service methods - void Print(int pri=1) const; // *MENU* + void PrintShish(int pri=1) const; // *MENU* protected: // size of SK module Double_t fTheta; // theta for SK module diff --git a/EMCAL/AliEMCALShishKebabTrd1Module.cxx b/EMCAL/AliEMCALShishKebabTrd1Module.cxx index 94d63812f9d..d988b3ecbc9 100644 --- a/EMCAL/AliEMCALShishKebabTrd1Module.cxx +++ b/EMCAL/AliEMCALShishKebabTrd1Module.cxx @@ -130,15 +130,15 @@ Bool_t AliEMCALShishKebabTrd1Module::GetParameters() fgr = (Double_t)fgGeometry->GetIPDistance(); if(!sn.Contains("TRD2")) fgr += fgGeometry->GetSteelFrontThickness(); fga2 = Double_t(fgGeometry->Get2Trd1Dx2()); - Print(0); + PrintShish(0); return kTRUE; } // service methods -void AliEMCALShishKebabTrd1Module::Print(int pri) const +void AliEMCALShishKebabTrd1Module::PrintShish(int pri) const { if(pri>=0) { - Info("Print()", "\n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", + Info("PrintShish()", "\n a %7.3f:%7.3f | b %7.2f | r %7.2f \n TRD1 angle %7.6f(%5.2f) | tanBetta %7.6f", fga, fga2, fgb, fgr, fgangle, fgangle*TMath::RadToDeg(), fgtanBetta); printf(" fTheta %f : %5.2f : cos(theta) %f\n", fTheta, GetThetaInDegree(),TMath::Cos(fTheta)); diff --git a/EMCAL/AliEMCALShishKebabTrd1Module.h b/EMCAL/AliEMCALShishKebabTrd1Module.h index 0184e2685c0..a97015c743e 100644 --- a/EMCAL/AliEMCALShishKebabTrd1Module.h +++ b/EMCAL/AliEMCALShishKebabTrd1Module.h @@ -43,7 +43,7 @@ class AliEMCALShishKebabTrd1Module : public TNamed { Double_t GetTanBetta() {return fgtanBetta;} Double_t Getb() {return fgb;} // service methods - void Print(int pri=1) const; // *MENU* + void PrintShish(int pri=1) const; // *MENU* // geometry info static AliEMCALGeometry *fgGeometry; //! diff --git a/EMCAL/AliEMCALv0.cxx b/EMCAL/AliEMCALv0.cxx index b9d2953cb19..e8c9350d2bb 100644 --- a/EMCAL/AliEMCALv0.cxx +++ b/EMCAL/AliEMCALv0.cxx @@ -23,12 +23,6 @@ //*-- and : Sahal Yacoob (LBL / UCT) // : Aleksei Pavlinov (WSU) SHASHLYK -// This Version of AliEMCALv0 reduces the number of volumes placed in XEN1 (the envelope) to less than five hundred -// The Envelope is Placed in Alice, And the Aluminium layer. Mini envelopes (XU) are then placed in XEN1. -// Each mini envelope contains 1 scintillator, and 1 lead layer, except the last one which contains just one scintillator layer. -// At the moment I cannot place the 36 and above layers in the mini envelopes so all layers are still placed in XEN1 - - // --- ROOT system --- #include "TNode.h" @@ -48,7 +42,6 @@ #include "AliEMCALShishKebabModule.h" #include "AliEMCALShishKebabTrd1Module.h" -//#include // can not include - I don't know why // --- Standard library --- @@ -69,7 +62,6 @@ Int_t *idtmed=0, idrotm=0; double sampleWidth=0.; double parEMOD[5], smodPar0=0., smodPar1=0., smodPar2=0.; - //______________________________________________________________________ AliEMCALv0::AliEMCALv0(const char *name, const char *title): AliEMCAL(name,title) @@ -264,9 +256,6 @@ void AliEMCALv0::CreateGeometry() //| | XUNLayer : XPST (ECAL e = GetECScintThick() | | //| ------------------------------------------------- | - Float_t etamin,etamax; - Float_t *dum=0; - AliEMCALGeometry * geom = GetGeometry() ; TString gn(geom->GetName()); gn.ToUpper(); @@ -334,173 +323,9 @@ void AliEMCALv0::CreateGeometry() } if(gn.Contains("SHISH")){ - // Compact and twist + // COMPACT, TWIST, TRD2 or TRD1 CreateShishKebabGeometry(); - return; } - - if (AliLog::GetGlobalDebugLevel()>=2) { - printf("CreateGeometry: XEN1 = %f, %f\n", envelopA[5], envelopA[6]); - printf("CreateGeometry: XU0 = %f, %f\n", envelopA[5], envelopA[6]); - } - - // Create mini-envelopes which will contain the Tower scintillator-radiator - - TString label ; - - envelopA[5] = envelopA[5] + geom->GetGap2Active() // we are at the first scintllator - + geom->GetAlFrontThickness(); // rmin at z1 - envelopA[6] = envelopA[5] ; - - - Int_t i ; - - Int_t nLayers = geom->GetNECLayers(); - - for (i = 0; i < (nLayers-1); i++ ){ - label = "XU" ; - label += i ; - Float_t tseg ; - tseg = geom->GetECScintThick()+geom->GetECPbRadThick(); // thickness of scintillator+Pb in E Cal - envelopA[5] = envelopA[6] ; // rmin at z1 - envelopA[4] = geom->ZFromEtaR(envelopA[5] + tseg, - geom->GetArm1EtaMin()); // z coordinate 1 - envelopA[7] = geom->ZFromEtaR(envelopA[5] + tseg, - geom->GetArm1EtaMax()); // z coordinate 2 - envelopA[6] = envelopA[5] + tseg ; // rmax at z1 - envelopA[8] = envelopA[5] ; // radii are the same. - envelopA[9] = envelopA[6] ; // radii are the same. - - gMC->Gsvolu(label.Data(), "PGON", idtmed[1599], envelopA, 10);// Polygone filled with air - - // Position XUi in XEN1 - - gMC->Gspos(label.Data(), 1, "XEN1", 0.0, 0.0, 0.0, idrotm, "ONLY") ; - - if (AliLog::GetGlobalDebugLevel() >= 2) - printf("CreateGeometry: XU%d = %f, %f\n", i, envelopA[5], envelopA[6]); - - } // end i - - - // Create one mini-envelope which will contain the last scintillator XU(nlayers-1) because there is one more scintillator than Pb layer XU(nlayers-1) - - label = "XU" ; - label += i ; - envelopA[5] = envelopA[6] ; // rmin at z1 - envelopA[4] = geom->ZFromEtaR(envelopA[5] + geom->GetECScintThick(), - geom->GetArm1EtaMin()); // z coordinate 1 - envelopA[7] = geom->ZFromEtaR(envelopA[5] + geom->GetECScintThick(), - geom->GetArm1EtaMax()); // z coordinate 2 - envelopA[6] = envelopA[5] + geom->GetECScintThick() ; // rmax at z1 - envelopA[8] = envelopA[5] ; // radii are the same. - envelopA[9] = envelopA[6] ; // radii are the same. - - gMC->Gsvolu(label.Data(), "PGON", idtmed[1599], envelopA, 10); // Polygone filled with air - - // Position the last minienvelope in XEN1 - - gMC->Gspos(label.Data(), 1, "XEN1", 0.0, 0.0, 0.0, idrotm, "ONLY") ; - - if(AliLog::GetGlobalDebugLevel() >= 2) - printf("CreateGeometry: XEN%d = %f, %f\n", i, envelopA[5], envelopA[6]); - - // Create the shapes of active material (LEAD/Aluminium/Scintillator) - // to be placed - Float_t envelopB[10]; // First Layer of Aluminium - Float_t envelopC[10]; // Scintillator Layers - Float_t envelopD[10]; // Lead Layers - - envelopC[0] = envelopD[0] = envelopB[0] = envelopA[0] ; // starting position in Phi - envelopC[1] = envelopD[1] = envelopB[1] = envelopA[1] ; // angular range in phi - envelopC[2] = envelopD[2] = envelopB[2] = envelopA[2] ; // number of sections in Phi - envelopC[3] = envelopD[3] = envelopB[3] = envelopA[3] ; // 2 z coordinates - - Float_t dist = geom->GetEnvelop(0) + geom->GetAlFrontThickness() + geom->GetGap2Active() ; - envelopB[4] = geom->ZFromEtaR(dist, - geom->GetArm1EtaMin()); // z co-ordinate 1 - envelopB[5] = geom->GetEnvelop(0) ; // rmin at z1 - envelopB[6] = envelopB[5] + geom->GetAlFrontThickness();// rmax at z1 - envelopB[7] = geom->ZFromEtaR(dist, - geom->GetArm1EtaMax()); // z co-ordinate 2 - envelopB[8] = envelopB[5] ; // radii are the same. - envelopB[9] = envelopB[6] ; // radii are the same. - - // Define active volumes completely - - gMC->Gsvolu("XALU", "PGON", idtmed[1602], envelopB, 10); // PGON filled with Al - - gMC->Gspos("XALU", 1, "XEN1", 0.0, 0.0, 0.0 , idrotm, "ONLY") ; // Position Aluminium Layer in XEN1 - - gMC->Gsvolu("XPST", "PGON", idtmed[1601], dum, 0); // PGON filled with Scintillator (shape to be defined by GSPOSP) - - gMC->Gsvolu("XPBX", "PGON", idtmed[1600], dum, 0); // PGON filled with Lead (shape to be defined by GSPOSP) - - //gMC->Gsvolu("XCUX", "PGON", idtmed[1603], dum, 0); // PGON filled with Copper (shape to be defined by GSPOSP) - - gMC->Gsdvn("XPHI", "XPST", geom->GetNPhi(), 2); // Divide eta section of scintillators into phi segments. - - // Position alternatively scintillator and Lead Layers in XUi. - - envelopD[6] = envelopB[6] + geom->GetGap2Active() ;// gap between Al layer and XU0 - - for (int i = 0; i < nLayers; i++ ){ - label = "XU" ; - label += i ; // we will place one layer in each mini envelope) - - Float_t scthick ; // scintillator thickness - scthick = geom->GetECScintThick() ; - - envelopC[5] = envelopD[6] ; //rmin - envelopC[6] = envelopC[5] + scthick ; //rmax - envelopC[8] = envelopC[5] ; //rmin - envelopC[9] = envelopC[6] ; //rmax - - if(AliLog::GetGlobalDebugLevel() >= 2 ) - printf("CreateGeometry: volume = %s, name = XPST thickness = %f deb = %f/%f fin = %f/%f", label.Data(), scthick, envelopC[5], envelopC[8], envelopC[6], envelopC[9]) ; - - for (int j =0; j < (geom->GetNEta()) ; j++){ - etamin = geom->GetArm1EtaMin()+ - (j*geom->GetDeltaEta()); - etamax = geom->GetArm1EtaMin()+ - ((j+1)*geom->GetDeltaEta()); - envelopC[4] = geom->ZFromEtaR(envelopC[5],etamin); //z begin - envelopC[7] = geom->ZFromEtaR(envelopC[5],etamax);// z end - - gMC->Gsposp("XPST",1+j+i*(geom->GetNEta()), label.Data(), - 0.0, 0.0, 0.0 , idrotm, "ONLY", envelopC, 10); // Position and define layer - } // end for j - - Float_t radthick ; // radiator thickness - TString radname ; // radiator name - radthick = geom->GetECPbRadThick(); - radname = "XPBX" ; - - if ( i < nLayers -1 ) { // except for the last XU which contains only one scintillator layer - - envelopD[5] = envelopC[6] ; //rmin - envelopD[8] = envelopD[5] ; //rmin - envelopD[6] = envelopD[5] + radthick ; // rmax - envelopD[9] = envelopD[6] ; //rmax - - if(AliLog::GetGlobalDebugLevel() >= 2 ) - printf("CreateGeometry: volume = %s, name = %s thickness = %f deb = %f/%f fin = %f/%f", label.Data(), radname.Data(), radthick, envelopD[5], envelopD[8], envelopD[6], envelopD[9]) ; - - for (int j =0; j < (geom->GetNEta()) ; j++){ - etamin = geom->GetArm1EtaMin()+ - (j*geom->GetDeltaEta()); - etamax = geom->GetArm1EtaMin()+ - ((j+1)*geom->GetDeltaEta()); - envelopD[4] = geom->ZFromEtaR(envelopD[5],etamin);//z begin - envelopD[7] = geom->ZFromEtaR(envelopD[5],etamax);// z end - - // Position and Define Layer - - gMC->Gsposp(radname.Data(),1+j+i*(geom->GetNEta()), label.Data(), - 0.0, 0.0, 0.0 , idrotm, "ONLY", envelopD, 10); - } // end for j - } // if not last layer - } // for i } //______________________________________________________________________ @@ -790,7 +615,7 @@ void AliEMCALv0::CreateSmod(const char* mother) printf(" idrotm %3i phi %6.1f(%5.3f) xpos %7.2f ypos %7.2f zpos %7.2f \n", idrotm, phi, phiRad, xpos, ypos, zpos); nr++; - } else { + } else { // TRD1 TString smName("SMOD"); // 12-oct-05 if(i==5 && gn.Contains("110DEG")) { smName = "SM10"; diff --git a/EMCAL/AliEMCALv0.h b/EMCAL/AliEMCALv0.h index daacf23ce1f..39ef9d79634 100644 --- a/EMCAL/AliEMCALv0.h +++ b/EMCAL/AliEMCALv0.h @@ -11,7 +11,6 @@ //*-- Author: Yves Schutz (SUBATECH) //*-- and : Sahal Yacoob (LBL / UCT) // : Aleksei Pavlinov (WSU) SHASHLYK -//#include // --- ROOT system --- @@ -75,11 +74,11 @@ class AliEMCALv0 : public AliEMCAL { TList *GetShishKebabModules() {return fShishKebabModules;} AliEMCALShishKebabTrd1Module *GetShishKebabModule(const Int_t neta=0); private: - TList *fShishKebabModules; //! list of modules for twist geometries + TList *fShishKebabModules; //! list of modules protected: - ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees + ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees }; diff --git a/EMCAL/AliEMCALv2.cxx b/EMCAL/AliEMCALv2.cxx index 53a7314989e..3a08bd38984 100644 --- a/EMCAL/AliEMCALv2.cxx +++ b/EMCAL/AliEMCALv2.cxx @@ -60,7 +60,6 @@ AliEMCALv2::AliEMCALv2():AliEMCALv1(), fGeometry(0){ AliEMCALv2::AliEMCALv2(const char *name, const char *title): AliEMCALv1(name,title) { // Standard Creator. - // fGeant3 = (TGeant3*)gMC; fHits= new TClonesArray("AliEMCALHit",1000); gAlice->GetMCApp()->AddHitList(fHits); @@ -268,8 +267,6 @@ void AliEMCALv2::FinishEvent() Double_t AliEMCALv2::GetDepositEnergy(int print) { // 23-mar-05 - for testing - cout<<"AliEMCALv2::GetDepositEnergy() : fHits "<GetEnergy(); } if(print>0) { + cout<<"AliEMCALv2::GetDepositEnergy() : fHits "<GetEntries(), de); if(print>1) { printf(" #primary particles %i\n", gAlice->GetHeader()->GetNprimary()); @@ -539,37 +537,3 @@ void AliEMCALv2::TestIndexTransition(int pri, int idmax) } printf(" Good decoding %i : %i <- #cells \n", nGood, fGeometry->GetNCells()); } - -/* try to draw hits - gMC->Gsatt("*","seen",0); - gMC->Gsatt("scm0","seen",5); - g3->Gdrawc("alic", 1, 2.0, 12., -125, 0.3, 0.3); -*/ -//void AliEMCALv2::Gdaxis(float x0, float y0, float z0, float (hit_it()) ) { - if (map[hit->GetIparent()]==-99) - cout << "Remapping, found -99 for parent id " << hit->GetIparent() << ", " << map[hit->GetIparent()] << ", i_hit " << i_hit << endl; - hit->SetIparent(map[hit->GetIparent()]); - if (map[hit->GetPrimary()]==-99) - cout << "Remapping, found -99 for primary id " << hit->GetPrimary() << ", " << map[hit->GetPrimary()] << ", i_hit " << i_hit << endl; - hit->SetPrimary(map[hit->GetPrimary()]); - i_hit++; - } -} - -void AliEMCALv2::FinishPrimary() { - fCurPrimary=-1; - fCurParent=-1; - fCurTrack=-1; -} -*/ diff --git a/EMCAL/AliEMCALv2.h b/EMCAL/AliEMCALv2.h index 7ffe7e93ad7..1c220a4ce48 100644 --- a/EMCAL/AliEMCALv2.h +++ b/EMCAL/AliEMCALv2.h @@ -45,11 +45,6 @@ public: // Gives the version number virtual Int_t IsVersion(void) const {return 2;} virtual const TString Version(void)const {return TString("v2");} - // virtual void RemapTrackHitIDs(Int_t *map); - //virtual void FinishPrimary(); - // virtual void SetTimeCut(Float_t tc){ fTimeCut = tc;} - // virtual Float_t GetTimeCut(){return fTimeCut;} - // assignement operator requested by coding convention but not needed AliEMCALv2 & operator = (const AliEMCALv1 & /*rvalue*/){ Fatal("operator =", "not implemented") ; return *this;} -- 2.43.0