#include "flipPCB.h"
+#include "AliMpDataMap.h"
+#include "AliMpDataProcessor.h"
+#include "AliMpDataStreams.h"
#include "AliMpMotif.h"
#include "AliMpMotifType.h"
#include "AliMpMotifPosition.h"
{
// flip PCB in X-direction
- AliMpSlatMotifMap* srcMotifs = new AliMpSlatMotifMap;
- AliMpSlatMotifMap* destMotifs = new AliMpSlatMotifMap;
+// AliMpSlatMotifMap* srcMotifs = new AliMpSlatMotifMap;
+// AliMpSlatMotifMap* destMotifs = new AliMpSlatMotifMap;
+
+ AliMpDataProcessor mp;
+ AliMpDataMap* dataMap = mp.CreateDataMap("data");
+ AliMpDataStreams dataStream(dataMap);
- AliMpSt345Reader reader(*srcMotifs);
+ AliMpSt345Reader reader(dataStream);
AliMpPCB* src = reader.ReadPCB(srcName);
if (!src) return;
+ AliMpSlatMotifMap* destMotifs = reader.MotifMap();
+
AliMpPCB* dest = flipX(*src,*destMotifs);
if (!dest)
{
std::vector<std::pair<int,int> > cols;
- if ( what == "L5" )
+ if ( what == "L5" || what == "L23" )
{
cols.push_back(std::make_pair<int,int>(0,40)); // starting at zero, length = 40
cols.push_back(std::make_pair<int,int>(0,24));
}
- else if ( what == "Z1" || what == "Z5" )
+ else if ( what == "Z1" || what == "Z5" || what == "Z8" )
{
cols.push_back(std::make_pair<int,int>(24,16));
cols.push_back(std::make_pair<int,int>(0,40));
add(cols,0,32);
add(cols,0,32);
}
- else if ( what == "Z2" )
+ else if ( what == "Z2" || what == "Z7" )
{
cols.push_back(std::make_pair<int,int>(0,8));
cols.push_back(std::make_pair<int,int>(0,40));
cols.push_back(std::make_pair<int,int>(0,24));
cols.push_back(std::make_pair<int,int>(0,40));
}
- else if ( what == "L7" )
+ else if ( what == "L7" || what == "L21" )
{
cols.push_back(std::make_pair<int,int>(0,40));
cols.push_back(std::make_pair<int,int>(16,24));
}
- else if ( what == "Z3" )
+ else if ( what == "Z3" || what == "Z6" )
{
cols.push_back(std::make_pair<int,int>(0,16));
cols.push_back(std::make_pair<int,int>(0,40));
add(cols,0,40);
add(cols,32,8);
}
+ else if ( what == "L22" )
+ {
+ add(cols,32,8);
+ add(cols,0,40);
+ }
else if ( what == "L19" )
{
add(cols,0,48);
// MUON includes
#include "AliMpSt345Reader.h"
+#include "AliMpPCB.h"
#include "AliMpSlat.h"
#include "AliMpVPainter.h"
#include "AliMpMotifReader.h"
#include "AliMpSlatMotifMap.h"
#include "TVector2.h"
#include "TCanvas.h"
+#include "AliMpDataStreams.h"
#endif
-void testGraphicsMotif(Option_t* motifType = "R43", const TVector2& padSizes = TVector2(2.5,0.5))
+void testGraphicsMotif(Option_t* motifType = "R43", const TVector2& padSizes = TVector2(5,0.5))
{
// Warning : this function leaks memory. But should be fine as only used
// interactively to check a few motifs at once...
//
- AliMpMotifReader reader(AliMp::kStation345,AliMp::kBendingPlane);
+ AliMpDataStreams ds;
+ AliMpMotifReader reader(ds,AliMp::kStation345,AliMp::kBendingPlane);
AliMpMotifType* type = reader.BuildMotifType(motifType);
if (!type)
{
cerr << "Motif not found" << endl;
return;
}
+ type->Print("G");
AliMpMotif* motif = new AliMpMotif(motifType,type,padSizes);
AliMpMotifPosition* pos = new AliMpMotifPosition(0,motif,TVector2(0,0));
AliMpVPainter* painter = AliMpVPainter::CreatePainter(pos);
cerr << "Could not get a painter !" << endl;
return;
}
- TCanvas* c = new TCanvas();
- painter->Draw("MP");
+ new TCanvas(motifType,motifType);
+ painter->Draw("PT");
}
//112230N
// P pad
// I indices
+ // PMPT to get manu channels numbering
+
Char_t *slatName[19] = {"122000SR1", "112200SR2", "122200S", "222000N", "220000N",
"122000NR1", "112200NR2", "122200N",
"122330N", "112233NR3", "112230N", "222330N", "223300N", "333000N", "330000N",
Char_t c1Name[255];
Char_t c1NameJpg[255];
- for (Int_t i = 0; i < 19; i++) {
+ for (Int_t i = 0; i < 2; i++) {
sprintf(c1Name, "%s%d", "c1", i);
c1[i]= new TCanvas(c1Name,slatName[i],10,10,1200,800);
Char_t* slatType = slatName[i];
- AliMpSlatMotifMap* smm = new AliMpSlatMotifMap;
- AliMpSt345Reader* reader = new AliMpSt345Reader(*smm);
+ AliMpDataStreams ds;
+ AliMpSt345Reader* reader = new AliMpSt345Reader(ds);
AliMpSlat* slat = reader->ReadSlat(slatType, planeType);
AliMpVPainter* painter = AliMpVPainter::CreatePainter(slat);
painter->Draw(option);
}
}
+
+void testGraphicsPCB(const char* pcbName="S2B",
+ Option_t* option = "MZT",
+ Bool_t savePNG = false)
+{
+
+ TCanvas* c = new TCanvas(pcbName,pcbName,10,10,1200,800);
+
+ AliMpDataStreams ds;
+ AliMpSt345Reader* reader = new AliMpSt345Reader(ds);
+ AliMpPCB* pcb = reader->ReadPCB(pcbName);
+ if (!pcb)
+ {
+ cerr << "PCB " << pcbName << " does not exist" << endl;
+ return;
+ }
+
+ AliMpVPainter* painter = AliMpVPainter::CreatePainter(pcb);
+ painter->Draw(option);
+
+ if (savePNG) c->Print(Form("%s-%s.png",pcbName,option));
+
+}