#include <TPDGCode.h>
+Bool_t gGun1 =kFALSE;
+Bool_t gGun7 =kFALSE;
+Bool_t gGunZ =kFALSE;
+Bool_t gBox =kFALSE;
+Bool_t gHijing =kFALSE;
+Bool_t gHijingPara=kFALSE;
+Bool_t gPythia =kFALSE;
+
class HmpConfig : public TGMainFrame
{
RQ_OBJECT()
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," AliHMPIDv1::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());
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fGenBG->GetButton(kGun1)->SetEnabled(kFALSE); fGenF->HideFrame(fGenNprimCO); fGenF->HideFrame(fGenPmaxCO);
fGenBG->GetButton(kGun7)->SetEnabled(kFALSE);
fGenBG->GetButton(kBox )->SetEnabled(kFALSE); fGenPidCO->Select(kProton); fGenPminCO->Select(25);
+ fGenF->HideFrame(fGenChamCO);
+ gGunZ=!gGunZ;
}
if(id==kGun1){
fGenBG->GetButton(kGunZ)->SetEnabled(kFALSE); fGenF->HideFrame(fGenNprimCO); fGenF->HideFrame(fGenPmaxCO);
fGenBG->GetButton(kGun7)->SetEnabled(kFALSE); fGenPidCO->Select(kProton); fGenPminCO->Select(25); fGenChamCO->Select(4);
fGenBG->GetButton(kBox )->SetEnabled(kFALSE);
+ gGun1=!gGun1;
}
if(id==kGun7){
fGenBG->GetButton(kGunZ)->SetEnabled(kFALSE); fGenF->HideFrame(fGenNprimCO);
fGenBG->GetButton(kGun1)->SetEnabled(kFALSE); fGenPidCO->Select(kProton);
fGenBG->GetButton(kBox )->SetEnabled(kFALSE); fGenF->HideFrame(fGenPmaxCO); fGenPminCO->Select(25);
fGenF->HideFrame(fGenChamCO);
+ gGun7=!gGun7;
}
if(id==kBox){
fGenBG->GetButton(kGunZ)->SetEnabled(kFALSE); fGenNprimCO->Select(500);
fGenBG->GetButton(kGun1)->SetEnabled(kFALSE); fGenPidCO ->Select(kProton);
fGenBG->GetButton(kGun7)->SetEnabled(kFALSE); fGenPminCO ->Select(15); fGenPmaxCO->Select(15);
+ fGenF->HideFrame(fGenChamCO);
+ gBox=!gBox;
}
if(id==kHijing){
- fGenBG->GetButton(kHijing)->ChangeBackground(0xff0000);
+// fGenBG->GetButton(kHijing)->ChangeBackground(0xff0000);
fGenBG->GetButton(kHijingPara)->SetEnabled(kFALSE);
fGenBG->GetButton(kPythia)->SetEnabled(kFALSE);
+ gHijing=!gHijing;
}
if(id==kHijingPara){
fGenBG->GetButton(kHijing)->SetEnabled(kFALSE); fGenNprimCO->Select(500);
fGenBG->GetButton(kPythia)->SetEnabled(kFALSE);
+ gHijingPara=!gHijingPara;
}
if(id==kPythia){
fGenBG->GetButton(kHijing)->SetEnabled(kFALSE);
fGenBG->GetButton(kHijingPara)->SetEnabled(kFALSE);
+ gPythia=!gPythia;
}
}//GenAddSlot()
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void HmpConfig::GenRemSlot(Int_t id)
{//is invoked when any of generator check button is released
- if(id==kGunZ){
+ if(id==kGunZ&&!gGunZ){
fGenBG->GetButton(kGun1)->SetEnabled(); fGenF->ShowFrame(fGenNprimCO);
fGenBG->GetButton(kGun7)->SetEnabled(); fGenPidCO ->Select(kNotUsed);
fGenBG->GetButton(kBox )->SetEnabled(); fGenF->ShowFrame(fGenPmaxCO); fGenPminCO ->Select(kNotUsed);
}
- if(id==kGun1){
+ if(id==kGun1&&!gGun1){
fGenBG->GetButton(kGunZ)->SetEnabled(); fGenF->ShowFrame(fGenNprimCO);
fGenBG->GetButton(kGun7)->SetEnabled(); fGenPidCO ->Select(kNotUsed);
fGenBG->GetButton(kBox )->SetEnabled(); fGenF->ShowFrame(fGenPmaxCO); fGenPminCO ->Select(kNotUsed);
+ fGenChamCO ->Select(kNotUsed);
}
- if(id==kGun7){
+ if(id==kGun7&&!gGun7){
fGenBG->GetButton(kGunZ)->SetEnabled(); fGenF->ShowFrame(fGenNprimCO);
fGenBG->GetButton(kGun1)->SetEnabled(); fGenPidCO ->Select(kNotUsed);
fGenBG->GetButton(kBox )->SetEnabled(); fGenF->ShowFrame(fGenPmaxCO); fGenPminCO ->Select(kNotUsed);
fGenF->ShowFrame(fGenChamCO);
}
- if(id==kBox){
+ if(id==kBox&&!gBox){
fGenBG->GetButton(kGunZ)->SetEnabled(); fGenNprimCO->Select(kNotUsed);
fGenBG->GetButton(kGun1)->SetEnabled(); fGenPidCO ->Select(kNotUsed);
fGenBG->GetButton(kGun7)->SetEnabled(); fGenPminCO ->Select(kNotUsed); fGenPmaxCO->Select(kNotUsed);
fGenChamCO ->Select(kNotUsed);
}
- if(id==kHijing){
- fGenBG->GetButton(kHijing)->ChangeBackground(0xbebebe);
+ if(id==kHijing&&!gHijing){
+// fGenBG->GetButton(kHijing)->ChangeBackground(0xbebebe);
fGenBG->GetButton(kHijingPara)->SetEnabled();
fGenBG->GetButton(kPythia)->SetEnabled();
}
- if(id==kHijingPara){
- fGenBG->GetButton(kHijing)->SetEnabled();
+ if(id==kHijingPara&&!gHijingPara){
+ fGenBG->GetButton(kHijing)->SetEnabled(); fGenNprimCO->Select(kNotUsed);
fGenBG->GetButton(kPythia)->SetEnabled();
}
- if(id==kPythia){
+ if(id==kPythia&&!gPythia){
fGenBG->GetButton(kHijing)->SetEnabled();
fGenBG->GetButton(kHijingPara)->SetEnabled();
}
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::WriteBatch()
{//creates Batch.C file
+ TString det;
+ if(fDetBG->GetButton(kITS )->GetState()) det+="ITS ";
+ if(fDetBG->GetButton(kTPC )->GetState()) det+="TPC ";
+ if(fDetBG->GetButton(kTRD )->GetState()) det+="TRD ";
+ if(fDetBG->GetButton(kTOF )->GetState()) det+="TOF ";
+ if(!fVerBG->GetButton(kNo)->GetState()) det+="HMPID ";
char *sBatchName="Hbatch";
FILE *fp=fopen(Form("%s.C",sBatchName),"w"); if(!fp){Info("CreateBatch","Cannot open output file: %s.C",sBatchName);return;}
else fprintf(fp," pSim->SetRunSimulation(kFALSE); //no transport and hits creation\n");
if (fSdiBG->GetButton(kNo )->GetState()) fprintf(fp," pSim->SetMakeSDigits(\"\"); //no sdigits\n");
- else if(fSdiBG->GetButton(kAll)->GetState()) fprintf(fp," pSim->SetMakeSDigits(\"ALL\"); //sdigits for all\n");
+ else if(fSdiBG->GetButton(kAll)->GetState()) fprintf(fp," pSim->SetMakeSDigits(\"%s\"); //sdigits for all\n",det.Data());
else if(fSdiBG->GetButton(kHmp)->GetState()) fprintf(fp," pSim->SetMakeSDigits(\"HMPID\"); //sdigits for HMPID\n");
if (fDigBG->GetButton(kNo )->GetState()) fprintf(fp," pSim->SetMakeDigits(\"\"); //no digits\n");
- else if(fDigBG->GetButton(kAll)->GetState()) fprintf(fp," pSim->SetMakeDigits(\"ALL\"); //digits for all\n");
+ else if(fDigBG->GetButton(kAll)->GetState()) fprintf(fp," pSim->SetMakeDigits(\"%s\"); //digits for all\n",det.Data());
else if(fDigBG->GetButton(kHmp)->GetState()) fprintf(fp," pSim->SetMakeDigits(\"HMPID\"); //digits for HMPID\n");
- if (fRawBG->GetButton(kDdl)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"ALL\"); //raw data as DDL\n");
- else if(fRawBG->GetButton(kDat)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"ALL\",\"raw.date\"); //raw data as DATE\n");
- else if(fRawBG->GetButton(kRoo)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"ALL\",\"raw.root\"); //raw data as ROOT\n");
+ if (fRawBG->GetButton(kDdl)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"%s\"); //raw data as DDL\n",det.Data());
+ else if(fRawBG->GetButton(kDat)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"%s\",\"raw.date\"); //raw data as DATE\n",det.Data());
+ else if(fRawBG->GetButton(kRoo)->GetState()) fprintf(fp," pSim->SetWriteRawData(\"%s\",\"raw.root\"); //raw data as ROOT\n",det.Data());
fprintf(fp," pSim->Run(iNevt); //run iNevt events\n delete pSim;\n\n");
}//sim section
else if(fInpBG->GetButton(kDat)->GetState()) fprintf(fp," pRec->SetInput(\"raw.root.date\"); //from raw data in DATE format\n");
else if(fInpBG->GetButton(kRoo)->GetState()) fprintf(fp," pRec->SetInput(\"raw.root\"); //from raw data in ROOT format\n");
- if (fCluBG->GetButton(kAll) ->GetState()) fprintf(fp," pRec->SetRunLocalReconstruction(\"ALL\"); //clusters for all detectors\n");
+ if (fCluBG->GetButton(kAll) ->GetState()) fprintf(fp," pRec->SetRunLocalReconstruction(\"%s\"); //clusters for all detectors\n",det.Data());
else if(fCluBG->GetButton(kHmp) ->GetState()) fprintf(fp," pRec->SetRunLocalReconstruction(\"HMPID\"); //clusters for HMPID only\n");
else if(fCluBG->GetButton(kNo) ->GetState()) fprintf(fp," pRec->SetRunLocalReconstruction(\"\"); //no clusters\n");
- if (fTrkBG->GetButton(kAln)->GetState()) fprintf(fp," pRec->SetLoadAlignData(\"ALL\"); //with misalignment\n");
+ if (fTrkBG->GetButton(kAln)->GetState()) fprintf(fp," pRec->SetLoadAlignData(\"%s\"); //with misalignment\n",det.Data());
else fprintf(fp," pRec->SetLoadAlignData(\"\"); //no misalignment\n");
if (fTrkBG->GetButton(kVtx)->GetState()) fprintf(fp," pRec->SetRunVertexFinder(kTRUE); //primary vertex\n");
else fprintf(fp," pRec->SetRunVertexFinder(kFALSE); //no primary vertex\n");
- if (fTrkBG->GetButton(kTrk) ->GetState()) fprintf(fp," pRec->SetRunTracking(\"ALL\"); //tracking\n");
+ if (fTrkBG->GetButton(kTrk) ->GetState()) fprintf(fp," pRec->SetRunTracking(\"%s\"); //tracking\n",det.Data());
else fprintf(fp," pRec->SetRunTracking(\"\"); //no tracking\n");
- if (fTrkBG->GetButton(kPid) ->GetState()) fprintf(fp," pRec->SetFillESD(\"ALL\"); //prob vect\n");
+ if (fTrkBG->GetButton(kPid) ->GetState()) fprintf(fp," pRec->SetFillESD(\"%s\"); //prob vect\n",det.Data());
else fprintf(fp," pRec->SetFillESD(\"\"); //no prob vect\n");
fprintf(fp," pRec->Run();delete pRec;\n\n");
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");