if(var>=1){
new TH1F("hDigiN", "#EMCAL digits with fAmp > fDigitThreshold",
fNADCEC+1, -0.5, Double_t(fNADCEC));
- new TH1F("HDigiSumEnergy","Sum.EMCAL energy from digi", 1000, 0.0, 200.);
+ new TH1F("HDigiSumEnergy","Sum.EMCAL energy from digi", 10000, 0.0, 200.);
new TH1F("hDigiAmp", "EMCAL digital amplitude", fNADCEC+1, -0.5, Double_t(fNADCEC));
new TH1F("hDigiEnergy","EMCAL cell energy", 2000, 0.0, 200.);
new TH1F("hDigiAbsId","EMCAL absId cells with fAmp > fDigitThreshold ",
Bool_t AliEMCALFast::EmcalAcceptance(Float_t eta, Float_t phi)
{
-//
+// 27-oct-05 -> should be change
// EMCAL eta-phi acceptance
Bool_t acc = kFALSE;
if (TMath::Abs(eta) < 0.7 &&
else if(name.Contains("SHISH")){
// 7-sep-05; integration issue
fArm1PhiMin = 80.0; // 60 -> 80
- fArm1PhiMax = 180.0; // 180 -> 200
+ fArm1PhiMax = 180.0; // 180 -> 190
fNumberOfSuperModules = 10; // 12 = 6 * 2 (6 in phi, 2 in Z);
fSteelFrontThick = 2.54; // 9-sep-04
}
fPhiModuleSize = 12.26 - fPhiGapForSM / Float_t(fNPhi); // first assumption
fEtaModuleSize = fPhiModuleSize;
+ if(name.Contains("HUGE")) fNECLayers *= 3; // 28-oct-05 for analysing leakage
}
}
} else if(name.Contains("TRD2")) { // 30-jan-05
else nphi = fNPhi;
ietat = (nTower-1)/nphi + 1; // have to change from 1 to fNZ
-
iphit = (nTower-1)%nphi + 1; // have to change from 1 to fNPhi
}
void AliEMCALGeometry::GetCellPhiEtaIndexInSModule(Int_t nSupMod, Int_t nTower, Int_t nIphi, Int_t nIeta,
int &iphi, int &ieta)
-{ // added nSupMod; have to check - 19-oct-05 !
- static Int_t iphit, ietat, nphi;
-
- if(fKey110DEG == 1 && nSupMod>=11) nphi = fNPhi/2;
- else nphi = fNPhi;
-
- ietat = (nTower-1)/nphi;
- ieta = ietat*fNETAdiv + nIeta; // have to change from 1 to fNZ*fNETAdiv
-
- iphit = (nTower-1)%nphi;
- iphi = iphit*fNPHIdiv + nIphi; // have to change from 1 to fNPhi*fNPHIdiv
+{ // added nSupMod; Nov 25, 05
+ static Int_t iphit, ietat;
+
+ GetTowerPhiEtaIndexInSModule(nSupMod,nTower, iphit, ietat);
+ // have to change from 1 to fNZ*fNETAdiv
+ ieta = (ietat-1)*fNETAdiv + (3-nIeta); // x(module) = -z(SM)
+ // iphi - have to change from 1 to fNPhi*fNPHIdiv
+ iphi = (iphit-1)*fNPHIdiv + nIphi; // y(module) = y(SM)
}
// Get geometry parameters from EMCAL
//
//
-// Geometry
- //AliEMCAL* pEMCAL = (AliEMCAL*) gAlice->GetModule("EMCAL");
- // AliEMCALGeometry* geom =
- // AliEMCALGeometry::GetInstance(pEMCAL->GetTitle(), "");
- AliEMCALGetter * gime = AliEMCALGetter::Instance() ;
- AliEMCALGeometry* geom = gime->EMCALGeometry() ;
+ AliEMCALGeometry *geom=0;
+ AliEMCALGetter *gime = AliEMCALGetter::Instance();
+ if(gime) {
+ geom = gime->EMCALGeometry() ;
+ if(!geom) {
+ printf(" No AliEMCALGeometry !! \n");
+ assert(0);
+ }
+ } else {
+ printf(" No AliEMCALGetter !! \n");
+ geom = AliEMCALGeometry::GetInstance();
+ if(!geom) {
+ printf(" No AliEMCALGeometry !! \n");
+ assert(0);
+ } else {
+ printf(" AliEMCALGeometry : %s\n", geom->GetName());
+ }
+ }
// SetSamplingFraction(geom->GetSampling());
Float_t TrackConeEnergy(Float_t eta, Float_t phi);
virtual void DumpLego();
virtual void ResetMap();
- virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
virtual void RearrangeParticlesMemory(Int_t npart);
+ public:
+ virtual Float_t PropagatePhi(Float_t pt, Float_t charge, Bool_t& curls);
ClassDef(AliEMCALJetFinder,5) // JetFinder for EMCAL
}
}
return save;
}
+
+void AliEMCALJetMicroDst::Sgpdge(Int_t pdgId, Int_t &gId)
+{ // 8-nov-05
+ sgpdge_(pdgId, gId);
+}
static void FillH2(TList *l=0, Int_t ind=0, Double_t x=-99999., Double_t y=-99999., Double_t w=1.);
static int SaveListOfHists(TList *list=0, const char* name="test", Bool_t kSingleKey=kFALSE,
const char* opt="RECREATE");
+ static void Sgpdge(Int_t pdgId, Int_t &gId);
AliEMCALJetMicroDst & operator = (const AliEMCALJetMicroDst &) {
Fatal("operator =", "not implemented") ; return *this ; }
for(int iy=0; iy<g->GetNPhi(); iy++) {
ypos = g->GetPhiModuleSize()*(2*iy+1 - g->GetNPhi())/2.;
gMC->Gspos(child, ++nr, mother, xpos, ypos, zpos, idrotm, "ONLY") ;
- //printf(" %2i xpos %7.2f ypos %7.2f zpos %7.2f \n", nr, xpos, ypos, zpos);
+ // printf(" %3i(%2i,2i) xpos %7.2f ypos %7.2f zpos %7.2f \n", nr,iy,iz, xpos, ypos, zpos);
}
}
} else if(gn.Contains("TRD")) { // 30-sep-04; 27-jan-05 - as for TRD1 as for TRD2
if(iz==0) AliMatrix(idrotm, 0.,0., 90.,90., 90.,0.); // z'(x); y'(y); x'(z)
else AliMatrix(idrotm, 90.-angle,180., 90.0,90.0, angle, 0.);
phiOK = mod->GetCenterOfModule().Phi()*180./TMath::Pi();
- printf(" %2i | angle | %6.3f - %6.3f = %6.3f(eta %5.3f)\n",
- iz+1, angle, phiOK, angle-phiOK, mod->GetEtaOfCenterOfModule());
+ // printf(" %2i | angle | %6.3f - %6.3f = %6.3f(eta %5.3f)\n",
+ //iz+1, angle, phiOK, angle-phiOK, mod->GetEtaOfCenterOfModule());
xpos = mod->GetPosXfromR() + g->GetSteelFrontThickness() - smodPar0;
zpos = mod->GetPosZ() - smodPar2;
ypos = g->GetPhiModuleSize()*(2*iy+1 - iyMax)/2.;
gMC->Gspos(child, ++nr, mother, xpos, ypos, zpos, idrotm, "ONLY") ;
//printf(" %2i xpos %7.2f ypos %7.2f zpos %7.2f idrotm %i\n", nr, xpos, ypos, zpos, idrotm);
+ printf("%3.3i(%2.2i,%2.2i) ", nr,iy+1,iz+1);
}
+ printf("\n");
} else {
if(iz==0) AliMatrix(idrotm, 0.,0., 90.,0., 90.,90.); // (x')z; y'(x); z'(y)
else AliMatrix(idrotm, 90-angle,270., 90.0,0.0, angle,90.);
zpos += sampleWidth;
}
}
+
+AliEMCALShishKebabTrd1Module* AliEMCALv0::GetShishKebabModule(const Int_t neta)
+{ // 28-oct-05
+ AliEMCALShishKebabTrd1Module* trd1=0;
+ if(fShishKebabModules && neta>=0 && neta<fShishKebabModules->GetSize()) {
+ trd1 = (AliEMCALShishKebabTrd1Module*)fShishKebabModules->At(neta);
+ }
+ return trd1;
+}
class TFile;
class TList;
class TNode;
+class AliEMCALShishKebabTrd1Module;
// --- AliRoot header files ---
#include "AliEMCAL.h"
void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t parEMOD[5], Double_t parPBMO[5]);
void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]);
+ TList *GetShishKebabModules() {return fShishKebabModules;}
+ AliEMCALShishKebabTrd1Module *GetShishKebabModule(const Int_t neta=0);
+ private:
TList *fShishKebabModules; //! list of modules for twist geometries
protected:
- ClassDef(AliEMCALv0,2) // Implementation of EMCAL manager class for midrapidity barrel layout between 0 and 120 degrees
+ ClassDef(AliEMCALv0,3) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees
};
if (1){
TH1::AddDirectory(0);
fHDe = new TH1F("fHDe","De in EMCAL", 1000, 0., 1.);
- fHNhits = new TH1F("fHNhits","#hits in EMCAL", 1001, -0.5, 1000.5);
+ fHNhits = new TH1F("fHNhits","#hits in EMCAL", 2001, -0.5, 2000.5);
fHistograms->Add(fHDe);
fHistograms->Add(fHNhits);
TH1::AddDirectory(1);
Double_t AliEMCALv2::GetDepositEnergy(int print)
{ // 23-mar-05 - for testing
+ cout<<"AliEMCALv2::GetDepositEnergy() : fHits "<<fHits<<endl;
+ if(fHits == 0) return 0.;
if(fHits == 0) return 0.;
AliEMCALHit *hit=0;
Double_t de=0.;
Fatal("operator =", "not implemented") ;
return *this;}
// 23-mar-05
- Double_t GetDepositEnergy(int print=1); // *MENU*
+ virtual Double_t GetDepositEnergy(int print=1); // *MENU*
// 30-aug-04
virtual void Browse(TBrowser* b);
// drawing
#pragma link C++ class AliEMCALv0+;
#pragma link C++ class AliEMCALv1+;
#pragma link C++ class AliEMCALv2+;
+#pragma link C++ class AliEMCALv3+;
#pragma link C++ class AliEMCALHit+;
+#pragma link C++ class AliEMCALHitv1+;
#pragma link C++ class AliEMCALLoader+;
#pragma link C++ class AliEMCALGetter+;
#pragma link C++ class AliEMCALGeneratorFactory+;
AliEMCALv0.cxx \
AliEMCALv1.cxx \
AliEMCALv2.cxx \
+AliEMCALv3.cxx \
AliEMCALHit.cxx \
+AliEMCALHitv1.cxx \
AliEMCALLoader.cxx \
AliEMCALGetter.cxx \
AliEMCALGeneratorFactory.cxx \