+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
+//Change log: 21st June 2007 by Levente Molnar
+// Detector description upgrade: ITS,ToF,Absorber, Dipole, V0, Emcal
+//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
+
+
#include <TPDGCode.h>
Bool_t gGun1 =kFALSE;
HmpConfig(const char*sFileName);
~HmpConfig() {Info("ctor","");Cleanup();}
- enum EVersOpts {kNo=101,kVer0,kVer1,kVer2,kTest, kDeclust=301,kSagita,kFeedback,kElNoise,kQe0=400,kQeNorm,kOptics};
+ enum EVersOpts {kNo=101,kVer0,kVer1,kVer2,kTest, kDeclust=301,kSagita,kFeedback,kElNoise,kQe0=400,kQeNorm,kFlatIdx,kOptics};
enum EGenTypes {kGunZ=1,kGun1,kGun7,kBox,kHijing,kHijingPara,kPythia,kHmpLib,kNotUsed=999};
enum EDetectors {kPIPE=1,kITS,kTPC,kTRD,kTOF,kFRAME,kMAG,kACORDE,kHALL,kPHOS,kT0,kFMD,kABSO,kPMD,kDIPO,kEMCAL,kVZERO,kMUON,kZDC,kSHILD};
new TGCheckButton(fOptBG,"Wire sagitta " ,kSagita); fOptBG->SetButton(kSagita);
new TGCheckButton(fOptBG,"Photon feedback " ,kFeedback); fOptBG->SetButton(kFeedback);
new TGCheckButton(fOptBG,"Electronic noise " ,kElNoise); // fOptBG->SetButton(kElNoise);
+ new TGCheckButton(fOptBG,"C6F14 N=1.292 " ,kFlatIdx);
new TGCheckButton(fOptBG,"Plot optics " ,kOptics);
pHmpGF->AddFrame(fQeBG=new TGButtonGroup(pHmpGF,""));
new TGRadioButton(fQeBG,"QE=0" ,kQe0);
if(!fVerBG->GetButton(kNo)->GetState()){
TString title;
if(!fOptBG->GetButton(kSagita) ->GetState()) fprintf(pF," AliHMPIDParam::fgIsWireSagita=kFALSE;\n");
- if(!fOptBG->GetButton(kFeedback)->GetState()) fprintf(pF," AliHMPID::DoFeed(kFALSE);\n");
+ if(!fOptBG->GetButton(kFeedback)->GetState()) title+=" NoFeedBack ";
if( fOptBG->GetButton(kElNoise) ->GetState()) fprintf(pF," AliHMPIDDigitizer::DoNoise(kTRUE);\n");
if( fOptBG->GetButton(kTest) ->GetState()) title+=" TestBeam ";
if( fOptBG->GetButton(kOptics) ->GetState()) title+=" ShowOptics ";
+ if( fOptBG->GetButton(kFlatIdx) ->GetState()) title+=" FlatIdx ";
if(title.Length()==0) title="Default";
if (fVerBG->GetButton(kVer0)->GetState()) fprintf(pF," new AliHMPIDv0(\"Gel %s\");\n\n",title.Data());
else if(fVerBG->GetButton(kVer1)->GetState()) fprintf(pF," new AliHMPIDv1(\"HMPID\",\"%s\");\n\n",title.Data());
- else if(fVerBG->GetButton(kVer2)->GetState()) fprintf(pF," new AliHMPIDv2(\"Tic %s\");\n\n",title.Data());
+ else if(fVerBG->GetButton(kVer2)->GetState()) fprintf(pF," new AliHMPIDv2(\"HMPID\",\"%s\");\n\n",title.Data());
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fprintf(pF," AliGenCocktail *pG=new AliGenCocktail();\n\n");
if(fGenBG->GetButton(kGunZ)->GetState()==kButtonDown)//1 particle along Z axis
- fprintf(pF," AliGenFixed *pGz=new AliGenFixed(1); pGz->SetPart(%i); pGz->SetMomentum(%.1f); pGz->SetOrigin(0,0,-200); pG->AddGenerator(pGz,\"Gz\",1);\n",pid,p);
+ fprintf(pF," AliGenFixed *pGz=new AliGenFixed(1); pGz->SetPart(%i); pGz->SetMomentum(%.1f); pGz->SetOrigin(0,0,-200); pG->AddGenerator(pGz,\"Gz\",1);\n",pid,pmin);
if(fGenBG->GetButton(kGun1)->GetState()==kButtonDown){//1 gun towards 1 HMPID chamber
switch(fGenChamCO->GetSelected()){
case 3: fprintf(pF," AliGenFixed *pG3=new AliGenFixed(1); pG3->SetPart(%i); pG3->SetMomentum(%.1f);\n",pid,pmin);
fprintf(pF," pG3->SetTheta(109.5); pG3->SetPhi(30); pG->AddGenerator(pG3,\"g3\",1);\n"); break;
case 4: fprintf(pF," AliGenFixed *pG4=new AliGenFixed(1); pG4->SetPart(%i); pG4->SetMomentum(%.1f);\n",pid,pmin);
- fprintf(pF," pG4->SetTheta( 90.0); pG4->SetPhi(30); pG->AddGenerator(pG4,\"g4\",1);\n"); break;
+ fprintf(pF," pG4->SetTheta( 87.0); pG4->SetPhi(30); pG->AddGenerator(pG4,\"g4\",1);\n"); break;
case 5: fprintf(pF," AliGenFixed *pG5=new AliGenFixed(1); pG5->SetPart(%i); pG5->SetMomentum(%.1f);\n",pid,pmin);
fprintf(pF," pG5->SetTheta( 70.5); pG5->SetPhi(30); pG->AddGenerator(pG5,\"g5\",1);\n"); break;
case 6: fprintf(pF," AliGenFixed *pG6=new AliGenFixed(1); pG6->SetPart(%i); pG6->SetMomentum(%.1f);\n",pid,pmin);
void HmpConfig::WriteDet(FILE *pF)
{
//CORE detectors
- if(fDetBG->GetButton(kPIPE )->GetState()) fprintf(pF,"\n new AliPIPEv0(\"PIPE\",\"Beam Pipe\");\n");
- if(fDetBG->GetButton(kSHILD)->GetState()) fprintf(pF,"\n new AliSHILv2(\"SHIL\",\"Shielding Version 2\");\n");
+ if(fDetBG->GetButton(kPIPE )->GetState()) fprintf(pF,"\n new AliPIPEv3(\"PIPE\",\"Beam Pipe\");\n");
+ if(fDetBG->GetButton(kSHILD)->GetState()) fprintf(pF,"\n new AliSHILv3(\"SHIL\",\"Shielding Version 2\");\n");
if(fDetBG->GetButton(kITS )->GetState()){
- fprintf(pF,"\n AliITSvPPRasymmFMD *pIts =new AliITSvPPRasymmFMD(\"ITS\",\"ITS PPR detailed version\");\n");
- fprintf(pF," pIts->SetMinorVersion(2); pIts->SetReadDet(kFALSE);\n");
- fprintf(pF," pIts->SetThicknessDet1(200.); pIts->SetThicknessDet2(200.);\n");
- fprintf(pF," pIts->SetThicknessChip1(150.); pIts->SetThicknessChip2(150.);\n");
- fprintf(pF," pIts->SetRails(0); pIts->SetCoolingFluid(1);\n");
- fprintf(pF," pIts->SetEUCLID(0);\n");
+ fprintf(pF,"\n AliITSvPPRasymmFMD *ITS = new AliITSvPPRasymmFMD(\"ITS\",\"ITS PPR detailed version with asymmetric services\");\n");
+ fprintf(pF,"\n ITS->SetMinorVersion(2);\n");
+ fprintf(pF,"\n ITS->SetReadDet(kFALSE);\n");
+ fprintf(pF,"\n ITS->SetThicknessDet1(200.);\n");
+ fprintf(pF,"\n ITS->SetThicknessDet2(200.); \n");
+ fprintf(pF,"\n ITS->SetThicknessChip1(150.);\n");
+ fprintf(pF,"\n ITS->SetThicknessChip2(150.);\n");
+ fprintf(pF,"\n ITS->SetRails(0);\n");
+ fprintf(pF,"\n ITS->SetCoolingFluid(1);\n");
+ fprintf(pF,"\n ITS->SetEUCLID(0);\n");
}
+
if(fDetBG->GetButton(kTPC )->GetState()) fprintf(pF,"\n new AliTPCv2(\"TPC\",\"Default\");\n");
if(fDetBG->GetButton(kFRAME)->GetState()) fprintf(pF,"\n AliFRAMEv2 *pFrame=new AliFRAMEv2(\"FRAME\",\"Space Frame\"); pFrame->SetHoles(1);\n");
if(fDetBG->GetButton(kTRD )->GetState()) fprintf(pF,"\n AliTRD *pTrd=new AliTRDv1(\"TRD\",\"TRD slow simulator\");\n");
- if(fDetBG->GetButton(kTOF )->GetState()) fprintf(pF,"\n new AliTOFv4T0(\"TOF\", \"normal TOF\");\n");
+ if(fDetBG->GetButton(kTOF )->GetState()) {
+ fprintf(pF,"\n AliTOF *TOF = new AliTOFv6T0(\"TOF\", \"normal TOF\");\n");
+ fprintf(pF,"\n Int_t TOFSectors[18]={-1,0,0,-1,-1,-1,0,0,-1,0,0,0,0,-1,-1,0,0,0};\n");
+ fprintf(pF,"\n TOF->SetTOFSectors(TOFSectors);\n");
+ }
//central detectors behind HMPID
if(fDetBG->GetButton(kMAG )->GetState()) fprintf(pF,"\n new AliMAG(\"MAG\",\"Magnet\");\n");
if(fDetBG->GetButton(kHALL )->GetState()) fprintf(pF,"\n new AliHALL(\"HALL\",\"Alice Hall\");\n");
//forward detectors
- if(fDetBG->GetButton(kFMD )->GetState()) fprintf(pF,"\n new AliFMDv1(\"FMD\",\"normal FMD\");\n");
- if(fDetBG->GetButton(kABSO )->GetState()) fprintf(pF,"\n new AliABSOv0(\"ABSO\",\"Muon absorber\");\n");
- if(fDetBG->GetButton(kDIPO )->GetState()) fprintf(pF,"\n new AliDIPOv2(\"DIPO\",\"Dipole version 2\");\n");
- if(fDetBG->GetButton(kMUON )->GetState()) fprintf(pF,"\n new AliMUONv1(\"MUON\",\"default\");\n");
- if(fDetBG->GetButton(kPMD )->GetState()) fprintf(pF,"\n new AliPMDv1(\"PMD\",\"normal PMD\");\n");
- if(fDetBG->GetButton(kT0)->GetState()) fprintf(pF,"\n new AliT0v1(\"T0\",\"T0 Detector\");\n");
- if(fDetBG->GetButton(kVZERO)->GetState()) fprintf(pF,"\n new AliVZEROv2(\"VZERO\",\"normal VZERO\");\n");
- if(fDetBG->GetButton(kZDC )->GetState()) fprintf(pF,"\n new AliZDCv2(\"ZDC\",\"normal ZDC\");\n");
+ if(fDetBG->GetButton(kFMD )->GetState()) fprintf(pF,"\n AliFMD *FMD = new AliFMDv1(\"FMD\",\"normal FMD\");\n");
+ if(fDetBG->GetButton(kABSO )->GetState()) fprintf(pF,"\n AliABSO *ABSO = new AliABSOv3(\"ABSO\",\"Muon absorber\");\n");
+ if(fDetBG->GetButton(kDIPO )->GetState()) fprintf(pF,"\n AliDIPO *DIPO = new AliDIPOv3(\"DIPO\",\"Dipole version 3\");\n");
+ if(fDetBG->GetButton(kMUON )->GetState()) fprintf(pF,"\n AliMUON *MUON = new AliMUONv1(\"MUON\",\"default\");\n");
+ if(fDetBG->GetButton(kPMD )->GetState()) fprintf(pF,"\n AliPMD *PMD = new AliPMDv1(\"PMD\",\"normal PMD\");\n");
+ if(fDetBG->GetButton(kT0)->GetState()) fprintf(pF,"\n AliT0 *T0 = new AliT0v1(\"T0\",\"T0 Detector\");\n");
+ if(fDetBG->GetButton(kVZERO)->GetState()) fprintf(pF,"\n AliVZERO *VZERO = new AliVZEROv7(\"VZERO\",\"normal VZERO\");\n");
+ if(fDetBG->GetButton(kZDC )->GetState()) fprintf(pF,"\n AliZDC *ZDC = new AliZDCv2(\"ZDC\",\"normal ZDC\");\n");
//different phase space detectors
- if(fDetBG->GetButton(kPHOS )->GetState()) fprintf(pF,"\n new AliPHOSv1(\"PHOS\",\"IHEP\");\n");
- if(fDetBG->GetButton(kEMCAL)->GetState()) fprintf(pF,"\n new AliEMCALv1(\"EMCAL\",\"G56_2_55_19_104_14\");\n");
- if(fDetBG->GetButton(kACORDE )->GetState()) fprintf(pF,"\n new AliACORDEv0(\"ACORDE\",\"normal ACORDE\");\n");
+ if(fDetBG->GetButton(kPHOS )->GetState()) fprintf(pF,"\n AliPHOS *PHOS = new AliPHOSv1(\"PHOS\",\"IHEP\");\n");
+ if(fDetBG->GetButton(kEMCAL)->GetState()) fprintf(pF,"\n AliEMCAL *EMCAL = new AliEMCALv2(\"EMCAL\",\"SHISH_77_TRD1_2X2_FINAL_110DEG\");\n");
+ if(fDetBG->GetButton(kACORDE )->GetState()) fprintf(pF,"\n AliACORDE *ACORDE = new AliACORDEv0(\"ACORDE\",\"normal ACORDE\");\n");
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void HmpConfig::GuiBatch(TGHorizontalFrame *pMainF)
WritePhys(pF); //physics processes
//Field
- if(fMagBG->GetButton(kFld0)->GetState()) fprintf(pF," gAlice->SetField(0); //no field\n\n");
+ if(fMagBG->GetButton(kFld0)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",0,1,10,0)); //no field\n\n");
else if(fMagBG->GetButton(kFld2)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,0));//0.2 Tesla field\n\n");
else if(fMagBG->GetButton(kFld4)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,1));//0.4 Tesla field\n\n");
else if(fMagBG->GetButton(kFld5)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,2));//0.5 Tesla field\n\n");